diff --git a/.github/workflows/ci-chrome-extension.yaml b/.github/workflows/ci-chrome-extension.yaml index b9a07866abc0..a78be9415597 100644 --- a/.github/workflows/ci-chrome-extension.yaml +++ b/.github/workflows/ci-chrome-extension.yaml @@ -24,7 +24,7 @@ jobs: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.11.0 with: - access_token: ${{ github.token }} + access_token: ${{ github.token }} - uses: actions/checkout@v4 - name: Install dependencies uses: ./.github/workflows/actions/yarn-install diff --git a/.github/workflows/ci-front.yaml b/.github/workflows/ci-front.yaml index 86ae4ef979d5..da15066fadc2 100644 --- a/.github/workflows/ci-front.yaml +++ b/.github/workflows/ci-front.yaml @@ -94,25 +94,28 @@ jobs: strategy: matrix: task: [lint, typecheck, test] - env: - REACT_APP_SERVER_BASE_URL: http://localhost:3000 steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.11.0 with: access_token: ${{ github.token }} - - name: Fetch local actions and base branch history + - name: Fetch custom Github Actions and base branch history uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install dependencies uses: ./.github/workflows/actions/yarn-install - - name: Front / Restore Task Cache + - name: Front / Restore ${{ matrix.task }} task cache uses: ./.github/workflows/actions/task-cache with: tag: scope:frontend tasks: ${{ matrix.task }} - - name: Front / Run task + - name: Reset .env + uses: ./.github/workflows/actions/nx-affected + with: + tag: scope:frontend + tasks: reset:env + - name: Run ${{ matrix.task }} task uses: ./.github/workflows/actions/nx-affected with: tag: scope:frontend diff --git a/.github/workflows/ci-server.yaml b/.github/workflows/ci-server.yaml index 7f86a590aa21..cc1968b34772 100644 --- a/.github/workflows/ci-server.yaml +++ b/.github/workflows/ci-server.yaml @@ -28,7 +28,7 @@ jobs: ports: - 5432:5432 steps: - - name: Fetch local actions and base branch history + - name: Fetch custom Github Actions and base branch history uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/package.json b/package.json index 896feaa7420c..dd802a7df8e7 100644 --- a/package.json +++ b/package.json @@ -190,6 +190,7 @@ "devDependencies": { "@babel/core": "^7.14.5", "@babel/preset-react": "^7.14.5", + "@crxjs/vite-plugin": "^1.0.14", "@docusaurus/module-type-aliases": "^3.1.0", "@docusaurus/tsconfig": "3.1.0", "@graphql-codegen/cli": "^3.3.1", @@ -235,6 +236,7 @@ "@types/bcrypt": "^5.0.0", "@types/better-sqlite3": "^7.6.8", "@types/bytes": "^3.1.1", + "@types/chrome": "^0.0.267", "@types/crypto-js": "^4.2.2", "@types/deep-equal": "^1.0.1", "@types/express": "^4.17.13", diff --git a/packages/twenty-chrome-extension/.eslintrc.cjs b/packages/twenty-chrome-extension/.eslintrc.cjs index 8dbe0179d2ba..d5d38934e7f6 100644 --- a/packages/twenty-chrome-extension/.eslintrc.cjs +++ b/packages/twenty-chrome-extension/.eslintrc.cjs @@ -1,6 +1,6 @@ module.exports = { extends: ['../../.eslintrc.cjs', '../../.eslintrc.react.cjs'], - ignorePatterns: ['!**/*', 'node_modules', 'dist', 'src/generated/*.tsx'], + ignorePatterns: ['!**/*', 'node_modules', 'dist', '**/generated/*'], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/packages/twenty-chrome-extension/.prettierignore b/packages/twenty-chrome-extension/.prettierignore new file mode 100644 index 000000000000..80697f2272d5 --- /dev/null +++ b/packages/twenty-chrome-extension/.prettierignore @@ -0,0 +1 @@ +src/generated \ No newline at end of file diff --git a/packages/twenty-chrome-extension/package.json b/packages/twenty-chrome-extension/package.json index da51364e5fe5..a9dffcb331cd 100644 --- a/packages/twenty-chrome-extension/package.json +++ b/packages/twenty-chrome-extension/package.json @@ -5,19 +5,6 @@ "version": "0.0.1", "type": "module", "scripts": { - "nx": "NX_DEFAULT_PROJECT=twenty-chrome-extension node ../../node_modules/nx/bin/nx.js", - "clean": "npx rimraf ./dist", - "start": "yarn clean && VITE_MODE=development vite", - "build": "yarn clean && npx tsc && npx vite build", - "lint": "eslint . --report-unused-disable-directives --max-warnings 0 --config .eslintrc.cjs", - "graphql:generate": "graphql-codegen", - "fmt": "prettier --check \"src/**/*.ts\" \"src/**/*.tsx\"", - "fmt:fix": "prettier --cache --write \"src/**/*.ts\" \"src/**/*.tsx\"" - }, - "dependencies": { - "@types/chrome": "^0.0.256" - }, - "devDependencies": { - "@crxjs/vite-plugin": "^1.0.14" + "build": "npx vite build" } } diff --git a/packages/twenty-chrome-extension/project.json b/packages/twenty-chrome-extension/project.json new file mode 100644 index 000000000000..48cdd4560212 --- /dev/null +++ b/packages/twenty-chrome-extension/project.json @@ -0,0 +1,69 @@ +{ + "name": "twenty-chrome-extension", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "projectType": "application", + "tags": ["scope:frontend"], + "targets": { + "build": { + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "{projectRoot}/dist" + } + }, + "start": { + "executor": "@nx/vite:dev-server", + "options": { + "buildTarget": "twenty-chrome-extension:build", + "hmr": true + } + }, + "preview": { + "executor": "@nx/vite:preview-server", + "options": { + "buildTarget": "twenty-chrome-extension:build", + "port": 3002, + "open": true + } + }, + "reset:env": { + "executor": "nx:run-commands", + "inputs": ["{projectRoot}/.env.example"], + "outputs": ["{projectRoot}/.env"], + "cache": true, + "options": { + "cwd": "{projectRoot}", + "command": "cp .env.example .env" + } + }, + "typecheck": {}, + "lint": { + "options": { + "lintFilePatterns": [ + "{projectRoot}/src/**/*.{ts,tsx,json}", + "{projectRoot}/package.json" + ], + "maxWarnings": 0, + "reportUnusedDisableDirectives": "error" + }, + "configurations": { + "ci": { "eslintConfig": "{projectRoot}/.eslintrc-ci.cjs" }, + "fix": {} + } + }, + "fmt": { + "options": { + "files": "src" + }, + "configurations": { + "fix": {} + } + }, + "graphql:generate": { + "executor": "nx:run-commands", + "options": { + "cwd": "{projectRoot}", + "command": "graphql-codegen" + } + } + } +} diff --git a/packages/twenty-chrome-extension/tsconfig.app.json b/packages/twenty-chrome-extension/tsconfig.app.json index f53b9c4f0325..ce50a898d1df 100644 --- a/packages/twenty-chrome-extension/tsconfig.app.json +++ b/packages/twenty-chrome-extension/tsconfig.app.json @@ -1,8 +1,5 @@ { "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../.cache/tsc" - }, "exclude": [ "**/*.spec.ts", "**/*.test.ts", @@ -10,5 +7,5 @@ "**/*.test.tsx", "jest.config.ts" ], - "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] + "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"] } diff --git a/packages/twenty-chrome-extension/tsconfig.json b/packages/twenty-chrome-extension/tsconfig.json index 43eb06cc5434..840e10a78c08 100644 --- a/packages/twenty-chrome-extension/tsconfig.json +++ b/packages/twenty-chrome-extension/tsconfig.json @@ -1,15 +1,16 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { + "outDir": "../../.cache/tsc", "target": "ES2022", "useDefineForClassFields": true, "lib": ["ES2022", "DOM", "DOM.Iterable"], "module": "ESNext", "skipLibCheck": true, "esModuleInterop": true, - "baseUrl": ".", "paths": { - "@/*": ["src/options/modules/*"], - "~/*": ["src/*"] + "@/*": ["packages/twenty-chrome-extension/src/options/modules/*"], + "~/*": ["packages/twenty-chrome-extension/src/*"] }, /* Bundler mode */ diff --git a/packages/twenty-chrome-extension/tsconfig.spec.json b/packages/twenty-chrome-extension/tsconfig.spec.json index 00abfb39ae85..0436d0542f82 100644 --- a/packages/twenty-chrome-extension/tsconfig.spec.json +++ b/packages/twenty-chrome-extension/tsconfig.spec.json @@ -1,10 +1,10 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "outDir": "../../.cache/tsc", "types": ["jest", "node"] }, "include": [ + "codegen.ts", "vite.config.ts", "jest.config.ts", "**/*.test.ts", diff --git a/packages/twenty-chrome-extension/vite.config.ts b/packages/twenty-chrome-extension/vite.config.ts index c360a7d24beb..f30851658a91 100644 --- a/packages/twenty-chrome-extension/vite.config.ts +++ b/packages/twenty-chrome-extension/vite.config.ts @@ -19,6 +19,9 @@ const viteManifestHack: Plugin & { export default defineConfig(() => { return { + root: __dirname, + cacheDir: '../../node_modules/.vite/packages/twenty-chrome-extension', + build: { emptyOutDir: true, outDir: 'dist', diff --git a/yarn.lock b/yarn.lock index 9389333051c2..d582d7893072 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15896,13 +15896,13 @@ __metadata: languageName: node linkType: hard -"@types/chrome@npm:^0.0.256": - version: 0.0.256 - resolution: "@types/chrome@npm:0.0.256" +"@types/chrome@npm:^0.0.267": + version: 0.0.267 + resolution: "@types/chrome@npm:0.0.267" dependencies: "@types/filesystem": "npm:*" "@types/har-format": "npm:*" - checksum: 35b3d2c92a3888cc14e5961421233003407a95078bf9b2f30c52a90470dae02588560bff1733ed3e7a8e9f12a1d0c5a6bae0ca30b6acdb3d723e1c2f29c8e861 + checksum: baa2e526c86e0c092668eff8fdca35c3eea09f0cded9bab86d692ae3834955bfa49d3c064c51b003406099cce73060872c8c824ceef526c72a446c863a2b520c languageName: node linkType: hard @@ -46290,9 +46290,6 @@ __metadata: "twenty-chrome-extension@workspace:packages/twenty-chrome-extension": version: 0.0.0-use.local resolution: "twenty-chrome-extension@workspace:packages/twenty-chrome-extension" - dependencies: - "@crxjs/vite-plugin": "npm:^1.0.14" - "@types/chrome": "npm:^0.0.256" languageName: unknown linkType: soft @@ -46401,6 +46398,7 @@ __metadata: "@chakra-ui/accordion": "npm:^2.3.0" "@chakra-ui/system": "npm:^2.6.0" "@codesandbox/sandpack-react": "npm:^2.13.5" + "@crxjs/vite-plugin": "npm:^1.0.14" "@docusaurus/core": "npm:^3.1.0" "@docusaurus/module-type-aliases": "npm:^3.1.0" "@docusaurus/preset-classic": "npm:^3.1.0" @@ -46487,6 +46485,7 @@ __metadata: "@types/bcrypt": "npm:^5.0.0" "@types/better-sqlite3": "npm:^7.6.8" "@types/bytes": "npm:^3.1.1" + "@types/chrome": "npm:^0.0.267" "@types/crypto-js": "npm:^4.2.2" "@types/deep-equal": "npm:^1.0.1" "@types/dompurify": "npm:^3.0.5"