{ "workspaceLayout": { "appsDir": "packages", "libsDir": "packages" }, "namedInputs": { "default": ["{projectRoot}/**/*"], "excludeStories": [ "default", "!{projectRoot}/.storybook/*", "!{projectRoot}/**/tsconfig.storybook.json", "!{projectRoot}/**/*.stories.(ts|tsx)", "!{projectRoot}/**/__stories__/*" ], "excludeTests": [ "default", "!{projectRoot}/**/jest.config.(js|ts)", "!{projectRoot}/**/tsconfig.spec.json", "!{projectRoot}/**/*.test.(ts|tsx)", "!{projectRoot}/**/*.spec.(ts|tsx)", "!{projectRoot}/**/*.integration-spec.ts", "!{projectRoot}/**/__tests__/*" ], "production": [ "default", "excludeStories", "excludeTests", "!{projectRoot}/**/__mocks__/*", "!{projectRoot}/**/testing/*" ] }, "targetDefaults": { "build": { "cache": true, "inputs": ["^production", "production"], "dependsOn": ["^build"] }, "start": { "cache": false, "dependsOn": ["^build"] }, "lint": { "executor": "@nx/eslint:lint", "cache": true, "outputs": ["{options.outputFile}"], "options": { "eslintConfig": "{projectRoot}/eslint.config.mjs", "cache": true, "cacheLocation": "{workspaceRoot}/.cache/eslint" }, "configurations": { "ci": { "cacheStrategy": "content" }, "fix": { "fix": true } }, "dependsOn": ["^build"] }, "lint:diff-with-main": { "executor": "nx:run-commands", "cache": false, "options": { "command": "git diff --name-only --diff-filter=d main | grep -E '{args.pattern}' | grep '^{projectRoot}/' | xargs sh -c 'if [ $# -gt 0 ]; then npx eslint --config {projectRoot}/eslint.config.mjs \"$@\"; fi' _", "pattern": "\\.(ts|tsx|js|jsx)$" }, "configurations": { "fix": { "command": "git diff --name-only --diff-filter=d main | grep -E '{args.pattern}' | grep '^{projectRoot}/' | xargs sh -c 'if [ $# -gt 0 ]; then npx eslint --config {projectRoot}/eslint.config.mjs --fix \"$@\"; fi' _" } } }, "fmt": { "executor": "nx:run-commands", "cache": true, "options": { "cwd": "{projectRoot}", "command": "prettier {args.files} --check --cache {args.cache} --cache-location {args.cacheLocation} --write {args.write} --cache-strategy {args.cacheStrategy}", "cache": true, "cacheLocation": "../../.cache/prettier/{projectRoot}", "cacheStrategy": "metadata", "write": false }, "configurations": { "ci": { "cacheStrategy": "content" }, "fix": { "write": true } }, "dependsOn": ["^build"] }, "typecheck": { "executor": "nx:run-commands", "cache": true, "options": { "cwd": "{projectRoot}", "command": "tsgo -p tsconfig.json" }, "configurations": { "watch": { "command": "tsgo -p tsconfig.json --watch" } }, "dependsOn": ["^build"] }, "test": { "executor": "@nx/jest:jest", "cache": true, "dependsOn": ["^build"], "inputs": [ "^default", "excludeStories", "{workspaceRoot}/jest.preset.js" ], "outputs": ["{projectRoot}/coverage"], "options": { "jestConfig": "{projectRoot}/jest.config.mjs", "silent": true, "coverage": true, "coverageReporters": ["text-summary"], "cacheDirectory": "../../.cache/jest/{projectRoot}" }, "configurations": { "ci": { "ci": true, "maxWorkers": 1 }, "coverage": { "coverageReporters": ["lcov", "text"] }, "watch": { "watch": true } } }, "test:e2e": { "cache": true, "dependsOn": ["^build"] }, "storybook:build": { "executor": "nx:run-commands", "cache": true, "inputs": ["^default", "excludeTests"], "outputs": ["{projectRoot}/{options.output-dir}"], "options": { "cwd": "{projectRoot}", "command": "NODE_OPTIONS='--max-old-space-size=10240' VITE_DISABLE_TYPESCRIPT_CHECKER=true storybook build --test", "output-dir": "storybook-static", "config-dir": ".storybook" }, "dependsOn": ["^build"] }, "storybook:serve:dev": { "executor": "nx:run-commands", "cache": true, "dependsOn": ["^build"], "options": { "cwd": "{projectRoot}", "command": "storybook dev", "config-dir": ".storybook" } }, "storybook:serve:static": { "executor": "nx:run-commands", "dependsOn": ["storybook:build"], "options": { "cwd": "{projectRoot}", "command": "npx http-server {args.staticDir} -a={args.host} --port={args.port} --silent={args.silent}", "staticDir": "storybook-static", "host": "localhost", "port": 6006, "silent": true } }, "storybook:test": { "executor": "nx:run-commands", "cache": true, "inputs": ["^default", "excludeTests"], "outputs": ["{projectRoot}/coverage/storybook"], "options": { "cwd": "{projectRoot}", "command": "vitest run --coverage --shard={args.shard}", "shard": "1/1" } }, "storybook:test:no-coverage": { "executor": "nx:run-commands", "inputs": ["^default", "excludeTests"], "options": { "cwd": "{projectRoot}", "command": "vitest run --shard={args.shard}", "shard": "1/1" } }, "storybook:coverage": { "executor": "nx:run-commands", "cache": true, "inputs": [ "^default", "excludeTests", "{projectRoot}/coverage/storybook/coverage-storybook.json" ], "outputs": [ "{projectRoot}/coverage/storybook", "!{projectRoot}/coverage/storybook/coverage-storybook.json" ], "options": { "command": "npx nyc report --reporter={args.reporter} --reporter=text-summary -t {args.coverageDir} --report-dir {args.coverageDir} --check-coverage={args.checkCoverage} --cwd={projectRoot}", "coverageDir": "coverage/storybook", "reporter": "lcov", "checkCoverage": true }, "configurations": { "text": { "reporter": "text" } } }, "chromatic": { "executor": "nx:run-commands", "options": { "cwd": "{projectRoot}", "commands": [ { "command": "nx storybook:build {projectName}", "forwardAllArgs": false }, "chromatic --storybook-build-dir=storybook-static {args.ci}" ], "parallel": false }, "configurations": { "ci": { "ci": "--exit-zero-on-changes" } } }, "@nx/jest:jest": { "cache": true, "inputs": [ "^default", "excludeStories", "{workspaceRoot}/jest.preset.js" ], "options": { "passWithNoTests": true }, "configurations": { "ci": { "ci": true, "codeCoverage": true } } }, "@nx/eslint:lint": { "cache": true, "inputs": [ "default", "{workspaceRoot}/eslint.config.mjs", "{workspaceRoot}/packages/twenty-eslint-rules/**/*" ] }, "@nx/vite:build": { "cache": true, "dependsOn": ["^build"], "inputs": ["default", "^default"] }, "@nx/vitest:test": { "cache": true, "inputs": ["default", "^default"] } }, "generators": { "@nx/react": { "application": { "style": "@linaria/react", "linter": "eslint", "bundler": "vite", "compiler": "swc", "unitTestRunner": "jest", "projectNameAndRootFormat": "derived" }, "library": { "style": "@linaria/react", "linter": "eslint", "bundler": "vite", "compiler": "swc", "unitTestRunner": "jest", "projectNameAndRootFormat": "derived" }, "component": { "style": "@linaria/react" } } }, "tasksRunnerOptions": { "default": { "options": { "cacheableOperations": ["storybook:build"] } } }, "useInferencePlugins": false, "defaultBase": "main", "tui": { "enabled": false } }