tiktok-sparo/schemas/sparo-profile.schema.json

50 lines
2.1 KiB
JSON
Raw Normal View History

{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A sparse checkout profile for use with the Sparo tool",
"description": "This config file is used by the Sparo tool that optimizes performance of Git operations for a large frontend monorepo.\n\nhttps://tiktok.github.io/sparo/",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": {
"description": "Part of the JSON Schema standard, this optional keyword declares the URL of the schema that the file conforms to. Editors may download the schema and use it to perform syntax highlighting.",
"type": "string"
},
"selections": {
"description": "A list of Rush project selectors indicating the project folders to be included for sparse checkout. The selectors will be combined to make the union superset of projects.\n\nSee the Rush selector documentation for details:\nhttps://rushjs.io/pages/developer/selecting_subsets/",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"selector": {
"description": "A RushJS project selector such as \"--to\", \"--from\", \"--impacted-by\".\n\nSee the Rush selector documentation for details:\nhttps://rushjs.io/pages/developer/selecting_subsets/",
"type": "string"
},
"argument": {
"description": "The selector argument, for example a project name or an expression such as \"tag:my-tag\".",
"type": "string"
}
}
}
},
"includeFolders": {
"description": "A list of arbitrary additional folders to be included for checkout, not necessarily corresponding to any workspace project.",
"type": "array",
"items": {
"type": "string"
}
},
"excludeFolders": {
"description": "A list of folders to be excluded from the checkout. This field takes precedence over the \"includeFolders\" and \"selections\" fields, guaranteeing that the specified path will definitely not be included.",
"type": "array",
"items": {
"type": "string"
}
}
}
}