diff --git a/packages/tao/src/config/schema.json b/packages/tao/src/config/schema.json new file mode 100644 index 00000000000000..8ae7e8fa84d1e0 --- /dev/null +++ b/packages/tao/src/config/schema.json @@ -0,0 +1,131 @@ +{ + "$schema": "http://json-schema.org/schema", + "$id": "NxJson", + "title": "Nx Configuration", + "type": "object", + "properties": { + "implicitDependencies": { + "type": "object", + "description": "Map of files to projects that implicitly depend on them." + }, + "affected": { + "type": "object", + "description": "Default options for `nx affected`.", + "properties": { + "defaultBase": { + "type": "string", + "description": "Default based branch used by affected commands." + } + }, + "additionalProperties": false + }, + "npmScope": { + "type": "string", + "description": "NPM Scope that the workspace uses." + }, + "tasksRunnerOptions": { + "patternProperties": { + ".*": { + "$ref": "#/definitions/tasksRunnerOptions" + } + } + }, + "targetDependencies": { + "type": "object", + "description": "Dependencies between different target names across all projects.", + "patternProperties": { + ".*": { + "$ref": "#/definitions/targetDependencyConfig" + } + } + }, + "workspaceLayout": { + "type": "object", + "description": "Where new apps + libs should be placed.", + "properties": { + "libsDir": { + "type": "string", + "description": "Default folder name for libs." + }, + "appsDir": { + "type": "string", + "description": "Default folder name for apps." + } + }, + "additionalProperties": false + }, + "cli": { + "$ref": "#/definitions/cliOptions" + }, + "generators": { + "$ref": "#/definitions/generatorOptions" + }, + "plugins": { + "type": "array", + "description": "Plugins for extending the project graph.", + "items": { + "type": "string" + } + }, + "defaultProject": { + "type": "string", + "description": "Default project. When project isn't provided, the default project will be used." + } + }, + "definitions": { + "cliOptions": { + "type": "object", + "description": "Default generator collection.", + "properties": { + "packageManager": { + "type": "string", + "description": "The default package manager to use.", + "enum": ["yarn", "pnpm", "npm"] + }, + "defaultCollection": { + "type": "string", + "description": "The default schematics collection to use." + } + }, + "additionalProperties": false + }, + "generatorOptions": { + "type": "object", + "description": "List of default values used by generators.", + "properties": {} + }, + "tasksRunnerOptions": { + "type": "object", + "description": "Available Task Runners.", + "properties": { + "runner": { + "type": "string", + "description": "Path to resolve the runner." + }, + "options": { + "type": "object", + "description": "Default options for the runner." + } + }, + "additionalProperties": false + }, + "targetDependencyConfig": { + "type": "array", + "description": "Target dependency.", + "items": { + "type": "object", + "properties": { + "projects": { + "type": "string", + "description": "The projects that the targets belong to.", + "enum": ["self", "dependencies"] + }, + "target": { + "type": "string", + "description": "The name of the target." + } + } + } + } + } +}