UNPKG

@factorialco/shadowdog

Version:

<img src="https://raw.githubusercontent.com/factorialco/shadowdog/refs/heads/main/logo.png" alt="drawing" width="100"/>

331 lines (330 loc) 10.2 kB
{ "type": "object", "properties": { "$schema": { "type": "string" }, "debounceTime": { "type": "number", "minimum": 0, "default": 2000, "description": "The time in milliseconds to wait before running the command after a file change." }, "defaultIgnoredFiles": { "type": "array", "items": { "type": "string", "description": "File path or glob" }, "default": [".git", "**/node_modules"], "description": "Default ignored files when watching files" }, "plugins": { "type": "array", "items": { "anyOf": [ { "type": "object", "properties": { "name": { "type": "string", "const": "shadowdog-rake" }, "options": { "type": "object", "properties": {}, "additionalProperties": false } }, "required": ["name"], "additionalProperties": false }, { "type": "object", "properties": { "name": { "type": "string", "const": "shadowdog-local-cache" }, "options": { "type": "object", "properties": { "path": { "type": "string", "default": "/tmp/shadowdog/cache" }, "read": { "type": "boolean", "default": true }, "write": { "type": "boolean", "default": true } }, "additionalProperties": false, "default": {} } }, "required": ["name"], "additionalProperties": false }, { "type": "object", "properties": { "name": { "type": "string", "const": "shadowdog-remote-aws-s3-cache" }, "options": { "type": "object", "properties": { "path": { "type": "string", "default": "shadowdog/cache" }, "bucketName": { "type": "string" }, "read": { "type": "boolean", "default": true }, "write": { "type": "boolean", "default": true } }, "required": ["bucketName"], "additionalProperties": false } }, "required": ["name", "options"], "additionalProperties": false }, { "type": "object", "properties": { "name": { "type": "string", "const": "shadowdog-tag" }, "options": { "type": "object", "properties": {}, "additionalProperties": false } }, "required": ["name"], "additionalProperties": false }, { "type": "object", "properties": { "name": { "type": "string", "const": "shadowdog-tree" }, "options": { "type": "object", "properties": {}, "additionalProperties": false } }, "required": ["name"], "additionalProperties": false }, { "type": "object", "properties": { "name": { "type": "string", "const": "shadowdog-socket" }, "options": { "type": "object", "properties": { "path": { "type": "string", "default": "/tmp/shadowdog/socket" } }, "additionalProperties": false, "default": {} } }, "required": ["name"], "additionalProperties": false }, { "type": "object", "properties": { "name": { "type": "string", "const": "shadowdog-git" }, "options": { "type": "object", "properties": {}, "additionalProperties": false } }, "required": ["name"], "additionalProperties": false }, { "type": "object", "properties": { "name": { "type": "string", "const": "shadowdog-lock" }, "options": { "type": "object", "properties": { "path": { "type": "string", "default": "/tmp/shadowdog/lock" } }, "additionalProperties": false, "default": {} } }, "required": ["name"], "additionalProperties": false } ] }, "default": [], "description": "List of plugins to use" }, "watchers": { "type": "array", "items": { "type": "object", "properties": { "enabled": { "type": "boolean", "default": true, "description": "Whether the watcher is enabled or not" }, "files": { "type": "array", "items": { "type": "string", "description": "File path" }, "default": [], "description": "List of files to watch" }, "invalidators": { "type": "object", "properties": { "files": { "type": "array", "items": { "type": "string", "description": "File path" }, "default": [], "description": "List of files that invalidate the cache when they change. These ones are not watched." }, "environment": { "type": "array", "items": { "type": "string", "description": "Environment variable name" }, "default": [], "description": "List of environment variables that invalidate the cache when they change." } }, "additionalProperties": false, "default": { "files": [], "environment": [] }, "description": "List of invalidators for the cache" }, "ignored": { "type": "array", "items": { "type": "string", "description": "File path" }, "default": [], "description": "List of files to ignore when they change" }, "label": { "type": "string" }, "commands": { "type": "array", "items": { "type": "object", "properties": { "command": { "type": "string", "description": "The command to run when a file changes" }, "workingDirectory": { "type": "string", "default": "", "description": "The directory where the command should run." }, "tags": { "type": "array", "items": { "type": "string" }, "default": [], "description": "A list of tags to associate with the command. Used with the `generate` command to filter commands by tag." }, "artifacts": { "type": "array", "items": { "type": "object", "properties": { "output": { "type": "string", "description": "Path to the output file or folder" }, "description": { "type": "string", "description": "A description of the artifact" }, "ignore": { "type": "array", "items": { "type": "string" }, "description": "A list of files to ignore before saving the folder artifacts" } }, "required": ["output"], "additionalProperties": false, "description": "An artifact produced by the command" }, "default": [], "description": "List of artifacts produced by the command" } }, "required": ["command"], "additionalProperties": false, "description": "Command configuration when a file changes" }, "description": "List of commands to run when a file changes" } }, "required": ["commands"], "additionalProperties": false, "description": "Watcher configuration" }, "description": "List of watchers to run" } }, "required": ["watchers"], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }