UNPKG

arkit

Version:

Visualises JavaScript, TypeScript and Flow codebases as meaningful and committable architecture diagrams

161 lines (159 loc) 5.4 kB
{ "$id": "https://arkit.pro/schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "ComponentNameFormat": { "description": "Component name formats", "enum": [ "base", "full", "complete" ], "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" }