@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
JSON
{
"$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
}