schema.json
{
"$id": "https://arkit.pro/schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ComponentNameFormat": {
"description": "Component name formats",
"enum": [
"base",
"complete",
"full"
],
"type": "string"
},
"ComponentSchema": {
"description": "Component definition",
"properties": {
"excludePatterns": {
"description": "File patterns to exclude, e.g. [\"**\\/*.test.ts\"]",
"items": {
"type": "string"
},
"type": "array"
},
"format": {
"$ref": "https://arkit.pro/schema.json#/definitions/ComponentNameFormat",
"default": "base",
"description": "Filename format, e.g. \"base\", \"full\""
},
"patterns": {
"description": "File patterns to include, e.g. [\"**\\/*.model.ts\"]",
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"description": "Component type, e.g. \"Model\"",
"type": "string"
}
},
"required": [
"patterns",
"type"
],
"type": "object"
},
"GroupSchema": {
"description": "Group of components",
"properties": {
"components": {
"description": "List of components, e.g. [\"Service\", \"Model\"]",
"items": {
"type": "string"
},
"type": "array"
},
"first": {
"default": false,
"description": "First group",
"type": "boolean"
},
"last": {
"default": false,
"description": "Last group",
"type": "boolean"
},
"patterns": {
"description": "File patterns, e.g. [\"services\\/*.ts\", \"**\\/*.model.ts\"]",
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"description": "Component type, e.g. \"Data-related\"",
"type": "string"
}
},
"type": "object"
},
"OutputDirection": {
"enum": [
"horizontal",
"vertical"
],
"type": "string"
},
"OutputSchema": {
"properties": {
"direction": {
"$ref": "https://arkit.pro/schema.json#/definitions/OutputDirection",
"default": "vertical",
"description": "Direction, e.g. \"horizontal\", \"vertical\""
},
"groups": {
"description": "Optional groups of components",
"items": {
"$ref": "https://arkit.pro/schema.json#/definitions/GroupSchema"
},
"type": "array"
},
"path": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
}
],
"description": "Output path or paths, e.g. [\"architecture.puml\", \"architecture.svg\"]"
}
},
"type": "object"
}
},
"description": "Configuration",
"properties": {
"components": {
"anyOf": [
{
"$ref": "https://arkit.pro/schema.json#/definitions/ComponentSchema"
},
{
"items": {
"$ref": "https://arkit.pro/schema.json#/definitions/ComponentSchema"
},
"type": "array"
}
],
"description": "Required list of component definitions"
},
"excludePatterns": {
"description": "File patterns to exclude, e.g. [\"node_modules/**\"]",
"items": {
"type": "string"
},
"type": "array"
},
"output": {
"anyOf": [
{
"$ref": "https://arkit.pro/schema.json#/definitions/OutputSchema"
},
{
"items": {
"$ref": "https://arkit.pro/schema.json#/definitions/OutputSchema"
},
"type": "array"
}
],
"description": "Optional output configurations"
}
},
"type": "object"
}