weaveconfig 0.3.0

A unified configuration tool for monorepos
Documentation
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "_space.jsonc Schema",
  "description": "Schema for validating the _space.jsonc configuration file in weaveconfig.",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string",
      "description": "The URI of the JSON Schema that this document adheres to."
    },
    "name": {
      "type": "string",
      "description": "The name of the space. This is used to identify the space in the graph. Dependencies reference spaces by their name. It must be unique within the graph."
    },
    "dependencies": {
      "type": "array",
      "description": "List of dependencies for the space. Each element must be a name of another space.",
      "items": {
        "type": "string",
        "description": "A string representing the name of a dependency space."
      }
    },
    "mapping": {
      "type": "array",
      "description": "Mappings of environments from this space to environments in dependencies.",
      "items": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "The name of the environment in the dependency."
          },
          "to": {
            "type": "string",
            "description": "The name of the environment in this space."
          }
        },
        "required": ["from", "to"],
        "additionalProperties": false
      }
    },
    "environments": {
      "type": "array",
      "description": "List of environments supported by the space.",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "uniqueItems": true,
      "minItems": 1
    },
    "generate": {
      "description": "Generate configurations or files for the space.",
      "oneOf": [
        {
          "type": "boolean",
          "description": "A boolean indicating whether to generate default configurations."
        },
        {
          "type": "object",
          "description": "Object providing options for generating configurations.",
          "properties": {
            "typescript": {
              "type": "boolean",
              "description": "Whether to generate TypeScript bindings."
            }
          },
          "required": ["typescript"],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": ["name"],
  "additionalProperties": false
}