generated from TBD54566975/tbd-project-template
-
Notifications
You must be signed in to change notification settings - Fork 7
/
.go-arch-lint-schema.json
1 lines (1 loc) · 4.32 KB
/
.go-arch-lint-schema.json
1
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"definitions":{"commonComponents":{"description":"All project packages can import this components, useful for utils packages like 'models'","items":{"title":"component name","type":"string"},"title":"List of components names","type":"array"},"commonVendors":{"description":"All project packages can import this vendor libs","items":{"title":"vendor name","type":"string"},"title":"List of vendor names","type":"array"},"component":{"additionalProperties":false,"properties":{"in":{"anyOf":[{"$ref":"#/definitions/componentIn"},{"items":{"$ref":"#/definitions/componentIn"},"type":"array"}]}},"required":["in"],"type":"object"},"componentIn":{"description":"relative directory name, support glob masking (src/\\*/engine/\\*\\*)","examples":["src/services","src/services/*/repo","src/*/services/**"],"title":"relative path to project package","type":"string"},"components":{"additionalProperties":{"$ref":"#/definitions/component"},"title":"List of components","type":"object"},"dependencies":{"additionalProperties":{"$ref":"#/definitions/dependencyRule"},"title":"Dependency rules between spec and package imports","type":"object"},"dependencyRule":{"additionalProperties":false,"properties":{"anyProjectDeps":{"description":"all component code can import any other project code, useful for DI/main component","title":"Allow import any project package?","type":"boolean"},"anyVendorDeps":{"description":"all component code can import any vendor code","title":"Allow import any vendor package?","type":"boolean"},"canUse":{"items":{"title":"vendor name","type":"string"},"title":"List of allowed vendors to import","type":"array"},"deepScan":{"description":"you can turn on/off deepScan only for this component","title":"Override deepscan global flag for this component","type":"boolean"},"mayDependOn":{"items":{"title":"component name","type":"string"},"title":"List of allowed components to import","type":"array"}},"type":"object"},"exclude":{"items":{"title":"list of directories (relative path) for exclude from analyse","type":"string"},"title":"Excluded folders from analyse","type":"array"},"excludeFiles":{"description":"package will by excluded in all package files is matched by provided regexp's","items":{"title":"regular expression rules for file names, will exclude this files and it's packages from analyse","type":"string","x-intellij-language-injection":"regexp"},"title":"Excluded files from analyse matched by regexp","type":"array"},"settings":{"additionalProperties":false,"properties":{"deepScan":{"title":"will use new advanced AST linter (this default=true from v3+)","type":"boolean"},"depOnAnyVendor":{"title":"allow import any vendor code to any project file","type":"boolean"}},"title":"Global Scheme options","type":"object"},"vendor":{"additionalProperties":false,"properties":{"in":{"anyOf":[{"$ref":"#/definitions/vendorIn"},{"items":{"$ref":"#/definitions/vendorIn"},"type":"array"}]}},"required":["in"],"type":"object"},"vendorIn":{"description":"one or more import path of vendor libs, support glob masking (src/\\*/engine/\\*\\*)","examples":["golang.org/x/mod/modfile","example.com/*/libs/**",["gopkg.in/yaml.v2","github.com/mailru/easyjson"]],"title":"full import path to vendor","type":"string"},"vendors":{"additionalProperties":{"$ref":"#/definitions/vendor"},"title":"List of vendor libs","type":"object"},"version":{"description":"Defines arch file syntax and file validation rules","maximum":3,"minimum":3,"title":"Scheme Version","type":"integer"},"workdir":{"description":"Linter will prepend all path's in project with this relative path prefix (relative directory for analyse)","title":"Working directory","type":"string"}},"description":"Arch file scheme version 3","id":"https://github.com/fe3dback/go-arch-lint/v3","properties":{"allow":{"$ref":"#/definitions/settings"},"commonComponents":{"$ref":"#/definitions/commonComponents"},"commonVendors":{"$ref":"#/definitions/commonVendors"},"components":{"$ref":"#/definitions/components"},"deps":{"$ref":"#/definitions/dependencies"},"exclude":{"$ref":"#/definitions/exclude"},"excludeFiles":{"$ref":"#/definitions/excludeFiles"},"vendors":{"$ref":"#/definitions/vendors"},"version":{"$ref":"#/definitions/version"},"workdir":{"$ref":"#/definitions/workdir"}},"required":["version","components","deps"],"title":"Go Arch Lint V3","type":"object"}