diff --git a/playground/.env b/apps/playground/.env similarity index 100% rename from playground/.env rename to apps/playground/.env diff --git a/playground/.env.example b/apps/playground/.env.example similarity index 100% rename from playground/.env.example rename to apps/playground/.env.example diff --git a/playground/.gitignore b/apps/playground/.gitignore similarity index 100% rename from playground/.gitignore rename to apps/playground/.gitignore diff --git a/playground/README.md b/apps/playground/README.md similarity index 100% rename from playground/README.md rename to apps/playground/README.md diff --git a/playground/config/admin.ts b/apps/playground/config/admin.ts similarity index 100% rename from playground/config/admin.ts rename to apps/playground/config/admin.ts diff --git a/playground/config/api.ts b/apps/playground/config/api.ts similarity index 100% rename from playground/config/api.ts rename to apps/playground/config/api.ts diff --git a/playground/config/database.ts b/apps/playground/config/database.ts similarity index 100% rename from playground/config/database.ts rename to apps/playground/config/database.ts diff --git a/playground/config/middlewares.ts b/apps/playground/config/middlewares.ts similarity index 100% rename from playground/config/middlewares.ts rename to apps/playground/config/middlewares.ts diff --git a/playground/config/plugins.ts b/apps/playground/config/plugins.ts similarity index 100% rename from playground/config/plugins.ts rename to apps/playground/config/plugins.ts diff --git a/playground/config/server.ts b/apps/playground/config/server.ts similarity index 100% rename from playground/config/server.ts rename to apps/playground/config/server.ts diff --git a/playground/database/migrations/.gitkeep b/apps/playground/database/migrations/.gitkeep similarity index 100% rename from playground/database/migrations/.gitkeep rename to apps/playground/database/migrations/.gitkeep diff --git a/playground/favicon.png b/apps/playground/favicon.png similarity index 100% rename from playground/favicon.png rename to apps/playground/favicon.png diff --git a/playground/package.json b/apps/playground/package.json similarity index 92% rename from playground/package.json rename to apps/playground/package.json index 338b976..1c2fe71 100644 --- a/playground/package.json +++ b/apps/playground/package.json @@ -18,7 +18,7 @@ "react": "^18.0.0", "react-dom": "^18.0.0", "react-router-dom": "^6.0.0", - "strapi-plugin-boilerplate": "link:.yalc/strapi-plugin-boilerplate", + "strapi-plugin-boilerplate": "workspace:*", "styled-components": "^6.0.0" }, "devDependencies": { diff --git a/playground/public/robots.txt b/apps/playground/public/robots.txt similarity index 100% rename from playground/public/robots.txt rename to apps/playground/public/robots.txt diff --git a/playground/public/uploads/.gitkeep b/apps/playground/public/uploads/.gitkeep similarity index 100% rename from playground/public/uploads/.gitkeep rename to apps/playground/public/uploads/.gitkeep diff --git a/playground/src/admin/app.example.tsx b/apps/playground/src/admin/app.example.tsx similarity index 100% rename from playground/src/admin/app.example.tsx rename to apps/playground/src/admin/app.example.tsx diff --git a/playground/src/admin/tsconfig.json b/apps/playground/src/admin/tsconfig.json similarity index 100% rename from playground/src/admin/tsconfig.json rename to apps/playground/src/admin/tsconfig.json diff --git a/playground/src/admin/vite.config.example.ts b/apps/playground/src/admin/vite.config.example.ts similarity index 100% rename from playground/src/admin/vite.config.example.ts rename to apps/playground/src/admin/vite.config.example.ts diff --git a/playground/src/api/.gitkeep b/apps/playground/src/api/.gitkeep similarity index 100% rename from playground/src/api/.gitkeep rename to apps/playground/src/api/.gitkeep diff --git a/playground/src/extensions/.gitkeep b/apps/playground/src/extensions/.gitkeep similarity index 100% rename from playground/src/extensions/.gitkeep rename to apps/playground/src/extensions/.gitkeep diff --git a/playground/src/index.ts b/apps/playground/src/index.ts similarity index 100% rename from playground/src/index.ts rename to apps/playground/src/index.ts diff --git a/playground/tests/helpers.ts b/apps/playground/tests/helpers.ts similarity index 100% rename from playground/tests/helpers.ts rename to apps/playground/tests/helpers.ts diff --git a/playground/tsconfig.json b/apps/playground/tsconfig.json similarity index 100% rename from playground/tsconfig.json rename to apps/playground/tsconfig.json diff --git a/playground/types/generated/components.d.ts b/apps/playground/types/generated/components.d.ts similarity index 100% rename from playground/types/generated/components.d.ts rename to apps/playground/types/generated/components.d.ts diff --git a/playground/types/generated/contentTypes.d.ts b/apps/playground/types/generated/contentTypes.d.ts similarity index 100% rename from playground/types/generated/contentTypes.d.ts rename to apps/playground/types/generated/contentTypes.d.ts diff --git a/playground/yarn.lock b/apps/playground/yarn.lock similarity index 100% rename from playground/yarn.lock rename to apps/playground/yarn.lock diff --git a/package.json b/package.json index f18cc93..0b02a63 100644 --- a/package.json +++ b/package.json @@ -1,87 +1,20 @@ { - "version": "0.0.0", - "keywords": [], - "type": "commonjs", - "exports": { - "./package.json": "./package.json", - "./strapi-admin": { - "types": "./dist/admin/src/index.d.ts", - "source": "./admin/src/index.ts", - "import": "./dist/admin/index.mjs", - "require": "./dist/admin/index.js", - "default": "./dist/admin/index.js" - }, - "./strapi-server": { - "types": "./dist/server/src/index.d.ts", - "source": "./server/src/index.ts", - "import": "./dist/server/index.mjs", - "require": "./dist/server/index.js", - "default": "./dist/server/index.js" - } - }, - "files": [ - "dist" - ], + "name": "strapi-plugin-boilerplate-monorepo", + "private": true, "scripts": { - "build": "strapi-plugin build && yalc push --publish", - "watch": "strapi-plugin watch", - "watch:link": "strapi-plugin watch:link", - "verify": "strapi-plugin verify", - "test:ts:front": "tsc -p admin/tsconfig.json", - "test:ts:back": "tsc -p server/tsconfig.json", - "test:jest": "ENV_PATH=./playground/.env jest --verbose --runInBand --forceExit", - "test:cypress": "cypress run", - "test:cypress:open": "cypress open", - "playground:install": "yarn playground:yalc-add-link && cd playground && yarn install", - "playground:yalc-add": "cd playground && yalc add strapi-plugin-boilerplate", - "playground:yalc-add-link": "cd playground && yalc add --link strapi-plugin-boilerplate", - "playground:build": "cd playground && yarn build", - "playground:develop": "cd playground && yarn develop", - "playground:start": "cd playground && yarn start" - }, - "dependencies": { - "@strapi/design-system": "^2.0.0-rc.14", - "@strapi/icons": "^2.0.0-rc.14", - "react-intl": "^7.1.0" + "build": "turbo run build", + "dev": "turbo run dev", + "lint": "turbo run lint", + "format": "turbo run format", + "test": "turbo run test", + "test:e2e": "pnpm --filter e2e test", + "playground:build": "pnpm --filter playground build", + "playground:develop": "pnpm --filter playground develop", + "playground:start": "pnpm --filter playground start" }, "devDependencies": { - "@strapi/sdk-plugin": "^5.0.0", - "@strapi/strapi": "^5.0.0", - "@strapi/typescript-utils": "^5.0.0", - "@types/react": "^19.0.0", - "@types/react-dom": "^19.0.0", - "cypress": "^13.9.0", - "cypress-terminal-report": "^6.0.2", - "jest": "^29.7.0", - "prettier": "^3.4.2", - "react": "^19.0.0", - "react-router-dom": "^6.0.0", - "supertest": "^7.0.0", - "typescript": "^5.7.2" - }, - "peerDependencies": { - "@strapi/strapi": "^5.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0", - "react-router-dom": "^6.0.0", - "styled-components": "^6.0.0" - }, - "strapi": { - "kind": "plugin", - "name": "boilerplate", - "displayName": "Boilerplate", - "description": "A test-driven template for building reliable Strapi Plugins" - }, - "name": "strapi-plugin-boilerplate", - "description": "A test-driven template for building reliable Strapi Plugins", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/pluginpal/strapi-plugin-boilerplate.git" - }, - "bugs": { - "url": "https://github.com/pluginpal/strapi-plugin-boilerplate/issues" + "@biomejs/biome": "^1.9.0", + "turbo": "^2.3.0" }, - "homepage": "https://github.com/pluginpal/strapi-plugin-boilerplate#readme", - "author": "Boaz Poolman " + "packageManager": "pnpm@9.15.0" } diff --git a/admin/custom.d.ts b/packages/strapi-plugin-boilerplate/admin/custom.d.ts similarity index 100% rename from admin/custom.d.ts rename to packages/strapi-plugin-boilerplate/admin/custom.d.ts diff --git a/admin/src/components/Initializer.tsx b/packages/strapi-plugin-boilerplate/admin/src/components/Initializer.tsx similarity index 100% rename from admin/src/components/Initializer.tsx rename to packages/strapi-plugin-boilerplate/admin/src/components/Initializer.tsx diff --git a/admin/src/components/PluginIcon.tsx b/packages/strapi-plugin-boilerplate/admin/src/components/PluginIcon.tsx similarity index 100% rename from admin/src/components/PluginIcon.tsx rename to packages/strapi-plugin-boilerplate/admin/src/components/PluginIcon.tsx diff --git a/admin/src/index.ts b/packages/strapi-plugin-boilerplate/admin/src/index.ts similarity index 100% rename from admin/src/index.ts rename to packages/strapi-plugin-boilerplate/admin/src/index.ts diff --git a/admin/src/pages/App.tsx b/packages/strapi-plugin-boilerplate/admin/src/pages/App.tsx similarity index 100% rename from admin/src/pages/App.tsx rename to packages/strapi-plugin-boilerplate/admin/src/pages/App.tsx diff --git a/admin/src/pages/HomePage.tsx b/packages/strapi-plugin-boilerplate/admin/src/pages/HomePage.tsx similarity index 100% rename from admin/src/pages/HomePage.tsx rename to packages/strapi-plugin-boilerplate/admin/src/pages/HomePage.tsx diff --git a/admin/src/pluginId.ts b/packages/strapi-plugin-boilerplate/admin/src/pluginId.ts similarity index 100% rename from admin/src/pluginId.ts rename to packages/strapi-plugin-boilerplate/admin/src/pluginId.ts diff --git a/admin/src/translations/en.json b/packages/strapi-plugin-boilerplate/admin/src/translations/en.json similarity index 100% rename from admin/src/translations/en.json rename to packages/strapi-plugin-boilerplate/admin/src/translations/en.json diff --git a/admin/src/utils/getTranslation.ts b/packages/strapi-plugin-boilerplate/admin/src/utils/getTranslation.ts similarity index 100% rename from admin/src/utils/getTranslation.ts rename to packages/strapi-plugin-boilerplate/admin/src/utils/getTranslation.ts diff --git a/admin/tests/example.cy.jsx b/packages/strapi-plugin-boilerplate/admin/tests/example.cy.jsx similarity index 100% rename from admin/tests/example.cy.jsx rename to packages/strapi-plugin-boilerplate/admin/tests/example.cy.jsx diff --git a/admin/tsconfig.build.json b/packages/strapi-plugin-boilerplate/admin/tsconfig.build.json similarity index 100% rename from admin/tsconfig.build.json rename to packages/strapi-plugin-boilerplate/admin/tsconfig.build.json diff --git a/admin/tsconfig.json b/packages/strapi-plugin-boilerplate/admin/tsconfig.json similarity index 100% rename from admin/tsconfig.json rename to packages/strapi-plugin-boilerplate/admin/tsconfig.json diff --git a/jest.config.js b/packages/strapi-plugin-boilerplate/jest.config.js similarity index 100% rename from jest.config.js rename to packages/strapi-plugin-boilerplate/jest.config.js diff --git a/packages/strapi-plugin-boilerplate/package.json b/packages/strapi-plugin-boilerplate/package.json new file mode 100644 index 0000000..6146696 --- /dev/null +++ b/packages/strapi-plugin-boilerplate/package.json @@ -0,0 +1,79 @@ +{ + "version": "0.0.0", + "keywords": [], + "type": "commonjs", + "exports": { + "./package.json": "./package.json", + "./strapi-admin": { + "types": "./dist/admin/src/index.d.ts", + "source": "./admin/src/index.ts", + "import": "./dist/admin/index.mjs", + "require": "./dist/admin/index.js", + "default": "./dist/admin/index.js" + }, + "./strapi-server": { + "types": "./dist/server/src/index.d.ts", + "source": "./server/src/index.ts", + "import": "./dist/server/index.mjs", + "require": "./dist/server/index.js", + "default": "./dist/server/index.js" + } + }, + "files": [ + "dist" + ], + "scripts": { + "build": "strapi-plugin build", + "watch": "strapi-plugin watch", + "watch:link": "strapi-plugin watch:link", + "verify": "strapi-plugin verify", + "test:ts:front": "tsc -p admin/tsconfig.json", + "test:ts:back": "tsc -p server/tsconfig.json", + "test:jest": "ENV_PATH=../../apps/playground/.env jest --verbose --runInBand --forceExit", + "lint": "biome check admin/ server/", + "format": "biome check --write admin/ server/" + }, + "dependencies": { + "@strapi/design-system": "^2.0.0-rc.14", + "@strapi/icons": "^2.0.0-rc.14", + "@tanstack/react-query": "^5.62.0", + "react-intl": "^7.1.0" + }, + "devDependencies": { + "@strapi/sdk-plugin": "^5.0.0", + "@strapi/strapi": "^5.0.0", + "@strapi/typescript-utils": "^5.0.0", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "jest": "^29.7.0", + "react": "^19.0.0", + "react-router-dom": "^6.0.0", + "supertest": "^7.0.0", + "typescript": "^5.7.2" + }, + "peerDependencies": { + "@strapi/strapi": "^5.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0", + "react-router-dom": "^6.0.0", + "styled-components": "^6.0.0" + }, + "strapi": { + "kind": "plugin", + "name": "boilerplate", + "displayName": "Boilerplate", + "description": "A test-driven template for building reliable Strapi Plugins" + }, + "name": "strapi-plugin-boilerplate", + "description": "A test-driven template for building reliable Strapi Plugins", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/pluginpal/strapi-plugin-boilerplate.git" + }, + "bugs": { + "url": "https://github.com/pluginpal/strapi-plugin-boilerplate/issues" + }, + "homepage": "https://github.com/pluginpal/strapi-plugin-boilerplate#readme", + "author": "Boaz Poolman " +} diff --git a/server/src/bootstrap.ts b/packages/strapi-plugin-boilerplate/server/src/bootstrap.ts similarity index 100% rename from server/src/bootstrap.ts rename to packages/strapi-plugin-boilerplate/server/src/bootstrap.ts diff --git a/server/src/config/index.ts b/packages/strapi-plugin-boilerplate/server/src/config/index.ts similarity index 100% rename from server/src/config/index.ts rename to packages/strapi-plugin-boilerplate/server/src/config/index.ts diff --git a/server/src/content-types/index.ts b/packages/strapi-plugin-boilerplate/server/src/content-types/index.ts similarity index 100% rename from server/src/content-types/index.ts rename to packages/strapi-plugin-boilerplate/server/src/content-types/index.ts diff --git a/server/src/controllers/controller.ts b/packages/strapi-plugin-boilerplate/server/src/controllers/controller.ts similarity index 100% rename from server/src/controllers/controller.ts rename to packages/strapi-plugin-boilerplate/server/src/controllers/controller.ts diff --git a/server/src/controllers/index.ts b/packages/strapi-plugin-boilerplate/server/src/controllers/index.ts similarity index 100% rename from server/src/controllers/index.ts rename to packages/strapi-plugin-boilerplate/server/src/controllers/index.ts diff --git a/server/src/destroy.ts b/packages/strapi-plugin-boilerplate/server/src/destroy.ts similarity index 100% rename from server/src/destroy.ts rename to packages/strapi-plugin-boilerplate/server/src/destroy.ts diff --git a/server/src/index.ts b/packages/strapi-plugin-boilerplate/server/src/index.ts similarity index 100% rename from server/src/index.ts rename to packages/strapi-plugin-boilerplate/server/src/index.ts diff --git a/server/src/middlewares/index.ts b/packages/strapi-plugin-boilerplate/server/src/middlewares/index.ts similarity index 100% rename from server/src/middlewares/index.ts rename to packages/strapi-plugin-boilerplate/server/src/middlewares/index.ts diff --git a/server/src/policies/index.ts b/packages/strapi-plugin-boilerplate/server/src/policies/index.ts similarity index 100% rename from server/src/policies/index.ts rename to packages/strapi-plugin-boilerplate/server/src/policies/index.ts diff --git a/server/src/register.ts b/packages/strapi-plugin-boilerplate/server/src/register.ts similarity index 100% rename from server/src/register.ts rename to packages/strapi-plugin-boilerplate/server/src/register.ts diff --git a/server/src/routes/content-api.ts b/packages/strapi-plugin-boilerplate/server/src/routes/content-api.ts similarity index 100% rename from server/src/routes/content-api.ts rename to packages/strapi-plugin-boilerplate/server/src/routes/content-api.ts diff --git a/server/src/routes/index.ts b/packages/strapi-plugin-boilerplate/server/src/routes/index.ts similarity index 100% rename from server/src/routes/index.ts rename to packages/strapi-plugin-boilerplate/server/src/routes/index.ts diff --git a/server/src/services/index.ts b/packages/strapi-plugin-boilerplate/server/src/services/index.ts similarity index 100% rename from server/src/services/index.ts rename to packages/strapi-plugin-boilerplate/server/src/services/index.ts diff --git a/server/src/services/service.ts b/packages/strapi-plugin-boilerplate/server/src/services/service.ts similarity index 100% rename from server/src/services/service.ts rename to packages/strapi-plugin-boilerplate/server/src/services/service.ts diff --git a/server/tests/example.test.ts b/packages/strapi-plugin-boilerplate/server/tests/example.test.ts similarity index 100% rename from server/tests/example.test.ts rename to packages/strapi-plugin-boilerplate/server/tests/example.test.ts diff --git a/server/tsconfig.build.json b/packages/strapi-plugin-boilerplate/server/tsconfig.build.json similarity index 100% rename from server/tsconfig.build.json rename to packages/strapi-plugin-boilerplate/server/tsconfig.build.json diff --git a/server/tsconfig.json b/packages/strapi-plugin-boilerplate/server/tsconfig.json similarity index 100% rename from server/tsconfig.json rename to packages/strapi-plugin-boilerplate/server/tsconfig.json diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..757d656 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - "apps/*" + - "packages/*" + - "e2e" diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..a1db8a5 --- /dev/null +++ b/turbo.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://turbo.build/schema.json", + "tasks": { + "build": { "dependsOn": ["^build"], "outputs": ["dist/**"] }, + "dev": { "dependsOn": ["^build"], "cache": false, "persistent": true }, + "lint": {}, + "format": {}, + "test:ts:front": {}, + "test:ts:back": {}, + "test:jest": { "dependsOn": ["build"], "cache": false }, + "test:e2e": { "dependsOn": ["build"], "cache": false } + } +}