UNPKG

@storm-software/workspace-tools

Version:

Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.

467 lines (466 loc) • 16.5 kB
{ "$schema": "https://cdn.jsdelivr.net/npm/nx/schemas/nx-schema.json", "extends": "nx/presets/npm.json", "tasksRunnerOptions": { "default": { "options": { "cacheableOperations": [ "lint-sherif", "lint-knip", "lint-docs", "lint-ls", "lint", "format-readme", "format-toml", "format-prettier", "format-sherif", "format", "clean", "build-base", "build", "test", "e2e", "docs", "nx-release-publish" ], "parallel": 3 } } }, "namedInputs": { "sharedGlobals": [ "{workspaceRoot}/.github/**/*", "{workspaceRoot}/.gitattributes", "{workspaceRoot}/.gitignore", "{workspaceRoot}/assets/**/*", "{workspaceRoot}/tsconfig.*.json", "{workspaceRoot}/.npmrc", "{workspaceRoot}/.npmignore", "{workspaceRoot}/package.json", "{workspaceRoot}/pnpm-workspace.yaml", "{workspaceRoot}/LICENSE", "{workspaceRoot}/nx.json", "{workspaceRoot}/.nxignore", "{workspaceRoot}/storm-workspace.json", "{workspaceRoot}/storm-workspace.*.json", "{workspaceRoot}/.storm-workspace/config.json", "{workspaceRoot}/.storm-workspace/config.*.json", "{workspaceRoot}/storm-workspace.yaml", "{workspaceRoot}/storm-workspace.*.yaml", "{workspaceRoot}/.storm-workspace/config.yaml", "{workspaceRoot}/.storm-workspace/config.*.yaml", "{workspaceRoot}/storm-workspace.toml", "{workspaceRoot}/storm-workspace.*.toml", "{workspaceRoot}/.storm-workspace/config.toml", "{workspaceRoot}/.storm-workspace/config.*.toml", "{workspaceRoot}/storm-workspace.config.js", "{workspaceRoot}/.storm-workspace/config.js", "{workspaceRoot}/.storm-workspace/config.*.js", "{workspaceRoot}/storm-workspace.config.ts", "{workspaceRoot}/.storm-workspace/config.ts", "{workspaceRoot}/.storm-workspace/config.*.ts", "{workspaceRoot}/.env", "{workspaceRoot}/.env.*" ], "default": ["sharedGlobals", "{projectRoot}/**/*"], "production": [ "{projectRoot}/**/*", "!{projectRoot}/tools/**/*", "!{projectRoot}/scripts/**/*", "!{projectRoot}/node_modules/**/*", "!{projectRoot}/api-extractor.json", "!{projectRoot}/tsdoc.json", "!{projectRoot}/typedoc.json", "!{projectRoot}/.eslint-doc-generatorrc.js", "!{projectRoot}/.eslint-doc-generatorrc.json", "!{projectRoot}/.storybook/**/*", "!{projectRoot}/tsconfig.storybook.json", "!{projectRoot}/jest.config.ts", "!{projectRoot}/tsconfig.spec.json", "!{projectRoot}/src/test-setup.[jt]s", "!{projectRoot}/test-setup.[jt]s", "!{projectRoot}/tsconfig.spec.json", "!{projectRoot}/.eslintignore", "!{projectRoot}/.eslintrc.json", "!{projectRoot}/.eslintrc.cjs", "!{projectRoot}/eslint.config.js", "!{projectRoot}/eslint.config.cjs", "!{projectRoot}/eslint.config.mjs", "!{projectRoot}/biome.toml", "!{projectRoot}/biome.json", "!{projectRoot}/lefthook.yaml", "!{projectRoot}/.markdownlint.json", "!{projectRoot}/.markdownlint-cli2.cjs", "!{projectRoot}/.prettierrc", "!{projectRoot}/.prettierignore", "!{projectRoot}/docs/**/*", "!{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)", "!{projectRoot}/benches/**/*", "!{projectRoot}/e2e/**/*", "!{projectRoot}/tests/**/*", "!{projectRoot}/testing/**/*", "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", "!{projectRoot}/tsconfig.spec.json" ], "testing": [ "sharedGlobals", "{workspaceRoot}/jest.config.ts", "{workspaceRoot}/jest.preset.js", "{workspaceRoot}/benches/**/*", "{workspaceRoot}/e2e/**/*", "{workspaceRoot}/tests/**/*", "{workspaceRoot}/testing/**/*", "{workspaceRoot}/coverage/**/*", "{projectRoot}/project.json", "{projectRoot}/README.md", "{projectRoot}/CHANGELOG.md", "{projectRoot}/.env", "{projectRoot}/.env.local", "{projectRoot}/jest.config.ts", "{projectRoot}/tsconfig.spec.json", "{projectRoot}/src/test-setup.[jt]s", "{projectRoot}/test-setup.[jt]s", "{projectRoot}/tsconfig.spec.json", "{workspaceRoot}/jest.config.ts", "{workspaceRoot}/jest.preset.js", "{workspaceRoot}/benches/**/*", "{workspaceRoot}/e2e/**/*", "{workspaceRoot}/tests/**/*", "{workspaceRoot}/testing/**/*", "{workspaceRoot}/coverage/**/*", "{projectRoot}/benches/**/*", "{projectRoot}/e2e/**/*", "{projectRoot}/tests/**/*", "{projectRoot}/testing/**/*", "{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", "{projectRoot}/tsconfig.spec.json" ], "linting": [ "sharedGlobals", "{workspaceRoot}/.eslintignore", "{workspaceRoot}/eslintrc.json", "{workspaceRoot}/.eslintrc", "{workspaceRoot}/.eslintrc.json", "{workspaceRoot}/.eslintrc.js", "{workspaceRoot}/.eslintrc.cjs", "{workspaceRoot}/.eslintrc.mjs", "{workspaceRoot}/eslint.*.json", "{workspaceRoot}/eslint.*.js", "{workspaceRoot}/eslint.*.cjs", "{workspaceRoot}/eslint.*.mjs", "{workspaceRoot}/eslint.*.ts", "{workspaceRoot}/biome.toml", "{workspaceRoot}/biome.json", "{workspaceRoot}/lefthook.yaml", "{workspaceRoot}/.markdownlint.json", "{workspaceRoot}/.markdownlint-cli2.cjs", "{workspaceRoot}/.prettierrc", "{workspaceRoot}/prettier.config.js", "{workspaceRoot}/.prettierignore", "{projectRoot}/project.json", "{projectRoot}/README.md", "{projectRoot}/CHANGELOG.md", "{projectRoot}/.env", "{projectRoot}/.env.local", "{projectRoot}/.eslintignore", "{projectRoot}/eslintrc.json", "{projectRoot}/.eslintrc", "{projectRoot}/.eslintrc.json", "{projectRoot}/.eslintrc.js", "{projectRoot}/.eslintrc.cjs", "{projectRoot}/.eslintrc.mjs", "{projectRoot}/eslint.*.json", "{projectRoot}/eslint.*.js", "{projectRoot}/eslint.*.cjs", "{projectRoot}/eslint.*.mjs", "{projectRoot}/eslint.*.ts", "{projectRoot}/biome.toml", "{projectRoot}/biome.json", "{projectRoot}/lefthook.yaml", "{projectRoot}/.markdownlint.json", "{projectRoot}/.markdownlint-cli2.cjs", "{projectRoot}/.prettierrc", "{projectRoot}/.prettierignore" ], "documentation": [ "sharedGlobals", "{workspaceRoot}/api-extractor.json", "{workspaceRoot}/tsdoc.json", "{workspaceRoot}/typedoc.json", "{workspaceRoot}/.eslint-doc-generatorrc.js", "{workspaceRoot}/.eslint-doc-generatorrc.json", "{workspaceRoot}/contentlayer.config.ts", "{workspaceRoot}/*.md", "{workspaceRoot}/*.mdx", "{workspaceRoot}/docs/**/*", "{workspaceRoot}/.storybook/**/*", "{projectRoot}/project.json", "{projectRoot}/README.md", "{projectRoot}/CHANGELOG.md", "{projectRoot}/.env", "{projectRoot}/.env.local", "{projectRoot}/api-extractor.json", "{projectRoot}/tsdoc.json", "{projectRoot}/typedoc.json", "{projectRoot}/.eslint-doc-generatorrc.js", "{projectRoot}/.eslint-doc-generatorrc.json", "{projectRoot}/contentlayer.config.ts", "{projectRoot}/.storybook/**/*", "{projectRoot}/tsconfig.storybook.json", "{projectRoot}/README.md", "{projectRoot}/docs/**/*", "{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)", "!{projectRoot}/benches/**/*", "!{projectRoot}/e2e/**/*", "!{projectRoot}/tests/**/*", "!{projectRoot}/testing/**/*", "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", "!{projectRoot}/tsconfig.spec.json" ], "rust": [ "sharedGlobals", "{workspaceRoot}/Cargo.toml", "{workspaceRoot}/Cargo.lock", "{workspaceRoot}/.cargo/config.toml", "{workspaceRoot}/rust-toolchain", "{workspaceRoot}/rustfmt.toml", "{workspaceRoot}/deny.toml", "{projectRoot}/Cargo.toml", "{projectRoot}/.cargo/config.toml", { "runtime": "node -p '`${process.platform}_${process.arch}`'" }, "{projectRoot}/project.json", "{projectRoot}/README.md", "{projectRoot}/CHANGELOG.md", "{projectRoot}/.env", "{projectRoot}/.env.local", "{projectRoot}/**/*.rs", "{projectRoot}/**/*.proto", "{projectRoot}/**/*.acid", "{projectRoot}/**/*.acidic", "{projectRoot}/**/*.prisma", "{projectRoot}/src/**/*.json", "{projectRoot}/src/**/*.jsonc", "{projectRoot}/src/**/*.yaml", "{projectRoot}/src/**/*.yml", "{projectRoot}/src/**/*.toml", { "runtime": "node -p '`${process.platform}_${process.arch}`'" }, "!{projectRoot}/README.md", "!{projectRoot}/docs/**/*", "!{projectRoot}/benches/**/*", "!{projectRoot}/e2e/**/*", "!{projectRoot}/tests/**/*", "!{projectRoot}/testing/**/*" ], "typescript": [ "sharedGlobals", "!{projectRoot}/tsconfig.spec.json", "!{projectRoot}/tsconfig.storybook.json", "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", "!{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)", "!{projectRoot}/node_modules/**/*", "!{projectRoot}/benches/**/*", "!{projectRoot}/e2e/**/*", "!{projectRoot}/tests/**/*", "!{projectRoot}/testing/**/*", "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", "!{projectRoot}/tsconfig.spec.json", "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", "!{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)", "!{projectRoot}/node_modules/**/*", "{projectRoot}/package.json", "{projectRoot}/tsconfig.json", "{projectRoot}/tsconfig.*.json", "{projectRoot}/project.json", "{projectRoot}/README.md", "{projectRoot}/CHANGELOG.md", "{projectRoot}/.env", "{projectRoot}/.env.*", "{projectRoot}/README.md", "{projectRoot}/docs/**/*", "{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)", "{projectRoot}/**/*.proto", "{projectRoot}/**/*.acid", "{projectRoot}/**/*.acidic", "{projectRoot}/**/*.prisma", "{projectRoot}/src/**/*.cts", "{projectRoot}/src/**/*.mts", "{projectRoot}/src/**/*.ts", "{projectRoot}/src/**/*.tsx", "{projectRoot}/src/**/*.graphql", "{projectRoot}/src/**/*.gql", "{projectRoot}/src/**/*.js", "{projectRoot}/src/**/*.cjs", "{projectRoot}/src/**/*.mjs", "{projectRoot}/src/**/*.jsx", "{projectRoot}/src/**/*.json", "{projectRoot}/src/**/*.jsonc", "{projectRoot}/src/**/*.yaml", "{projectRoot}/src/**/*.yml", "{projectRoot}/src/**/*.toml", "{projectRoot}/src/**/*.md", "{projectRoot}/src/**/*.mdx", "{projectRoot}/build.*.[jt]s?(x)", "{projectRoot}/tsup.*.[jt]s?(x)", "{projectRoot}/contentlayer.*.[jt]s?(x)", "{projectRoot}/bin/**/*", "{projectRoot}/tools/**/*", "{projectRoot}/helpers/**/*", "{projectRoot}/scripts/**/*" ] }, "targetDefaults": { "lint-markdown": { "inputs": ["linting", "{projectRoot}/**/*.md", "{projectRoot}/**/*.mdx"], "outputs": ["{projectRoot}/**/*.md", "{projectRoot}/**/*.mdx"], "dependsOn": ["^lint-markdown"], "executor": "nx:run-commands", "options": { "command": "pnpm exec markdownlint-cli2 \"{projectRoot}/*.{md,mdx}\" \"{projectRoot}/**/*.{md,mdx}\" --config \"node_modules/@storm-software/markdownlint/config/base.markdownlint-cli2.jsonc\" --fix" } }, "lint": { "dependsOn": ["lint-markdown", "^lint"], "executor": "nx:run-commands", "options": { "command": "echo Linted the project files in \"{projectRoot}\" " } }, "format-toml": { "inputs": ["linting", "{projectRoot}/**/*.toml"], "outputs": ["{projectRoot}/**/*.toml"], "dependsOn": ["^format-toml"], "executor": "nx:run-commands", "options": { "command": "pnpm exec taplo format --config=\"node_modules/@storm-software/linting-tools/taplo/config.toml\" --cache-path=\"node_modules/.cache/taplo/{projectRoot}\" --colors=\"always\" \"{projectRoot}/*.toml\" \"{projectRoot}/**/*.toml\" " } }, "format-readme": { "inputs": [ "linting", "documentation", "{projectRoot}/{README.md,package.json,Cargo.toml,executors.json,generators.json}", "default", "^production" ], "outputs": ["{projectRoot}/README.md"], "dependsOn": ["^format-readme"], "executor": "nx:run-commands", "options": { "command": "pnpm exec storm-git readme --templates=\"tools/readme-templates\" --project=\"{projectName}\"" } }, "format-prettier": { "inputs": ["linting", "default", "^production"], "dependsOn": ["^format-prettier"], "executor": "nx:run-commands", "options": { "command": "pnpm exec prettier \"{projectRoot}/**/*\" --write --ignore-unknown --no-error-on-unmatched-pattern --config=\"node_modules/@storm-software/prettier/config.json\" --ignore-path=\"node_modules/@storm-software/prettier/.prettierignore\" --cache --cache-location=\"node_modules/.cache/prettier/{projectRoot}\" " } }, "format": { "dependsOn": [ "format-toml", "format-readme", "format-prettier", "^format" ], "options": { "command": "echo Formatted the project files in \"{projectRoot}\" " } }, "clean": { "inputs": ["default", "^production"], "outputs": ["{workspaceRoot}/dist/{projectRoot}"], "dependsOn": ["^clean"], "executor": "nx:run-commands", "options": { "commands": [ "pnpm exec rimraf --glob {projectRoot}/dist", "pnpm exec rimraf dist/{projectRoot}" ] } }, "build-untyped": { "dependsOn": ["^build"] }, "build-base": { "dependsOn": ["build-untyped", "^build"] }, "build-compile": { "inputs": ["default", "^production"], "dependsOn": ["build-base", "build-untyped", "^build"] }, "build": { "inputs": ["default", "^production"], "outputs": ["{workspaceRoot}/dist/{projectRoot}"], "dependsOn": ["build-base", "build-compile", "build-untyped", "^build"] }, "rebuild": { "inputs": ["default", "^production"], "executor": "nx:run-commands", "dependsOn": ["clean", "^build"], "options": { "command": "pnpm exec nx run {projectName}:build", "cwd": "{workspaceRoot}" } }, "docs": { "outputs": ["{options.outputPath}"], "inputs": ["linting", "documentation", "default", "^production"], "dependsOn": ["build", "format-readme", "lint-docs", "^docs"] }, "test": { "inputs": ["testing", "default", "^production"], "dependsOn": ["build", "^test"] }, "e2e": { "inputs": ["testing", "default", "^production"], "dependsOn": ["test", "^e2e"] }, "nx-release-publish": { "inputs": ["default", "^production"], "dependsOn": ["build", "^nx-release-publish"] } }, "release": { "groups": { "packages": { "projects": ["packages/*", "crates/*"], "projectsRelationship": "independent", "releaseTagPattern": "{projectName}@{version}", "changelog": { "entryWhenNoChanges": false, "renderOptions": { "authors": false, "commitReferences": true, "versionTitleDate": true } }, "version": { "groupPreVersionCommand": "pnpm build", "generator": "@storm-software/workspace-tools:release-version", "generatorOptions": { "currentVersionResolver": "git-tag", "specifierSource": "conventional-commits" } } } } }, "plugins": [ "@storm-software/workspace-tools/plugins/typescript", "@storm-software/workspace-tools/plugins/typescript/tsup", "@storm-software/workspace-tools/plugins/typescript/untyped" ], "cli": { "packageManager": "pnpm" }, "parallel": 3, "defaultBase": "main", "useDaemonProcess": true, "useInferencePlugins": true }