eslint-plugin-project-structure
Version:
Powerful ESLint plugin with rules to help you achieve a scalable, consistent, and well-structured project. Create your own framework! Define your folder structure, file composition, advanced naming conventions, and create independent modules. Take your pr
136 lines (135 loc) • 3.23 kB
JSON
{
"$ref": "#/definitions/IndependentModulesConfig",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Pattern": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"default": [],
"items": {
"type": "string",
"default": ""
}
}
]
},
"Module": {
"type": "object",
"default": {
"name": "",
"pattern": "",
"allowImportsFrom": []
},
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"default": ""
},
"pattern": {
"oneOf": [
{ "type": "string", "default": "" },
{
"type": "array",
"default": [],
"items": {
"oneOf": [
{ "type": "string", "default": "" },
{
"type": "array",
"default": [],
"items": { "type": "string" }
}
]
}
}
]
},
"errorMessage": {
"type": "string",
"default": ""
},
"allowImportsFrom": {
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/Pattern"
}
},
"allowExternalImports": {
"type": "boolean",
"default": false
}
},
"required": ["name", "pattern", "allowImportsFrom"]
},
"IndependentModulesConfig": {
"type": "object",
"default": {},
"additionalProperties": false,
"properties": {
"extensions": {
"type": "array",
"default": [],
"items": {
"type": "string",
"default": ""
}
},
"debugMode": {
"type": "boolean",
"default": true
},
"packageRoot": {
"type": "string",
"default": ""
},
"tsconfigPath": {
"type": "string",
"default": "./tsconfig.json"
},
"pathAliases": {
"type": "object",
"default": {},
"additionalProperties": false,
"properties": {
"baseUrl": { "type": "string", "default": "" },
"paths": {
"type": "object",
"default": {},
"additionalProperties": {
"type": "array",
"default": [],
"items": { "type": "string" }
}
}
},
"required": ["baseUrl", "paths"]
},
"reusableImportPatterns": {
"type": "object",
"default": {},
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/definitions/Pattern"
}
}
},
"modules": {
"type": "array",
"default": [],
"items": {
"$ref": "#/definitions/Module"
}
}
},
"required": ["modules"]
}
}
}