VSCodeSetting/globalStorage/vscode.json-language-features/json-schema-cache/50ab969b57b661ead929ae5ada1eae12.schema.json
2022-08-17 10:16:44 +08:00

5473 lines
174 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"rule": {
"type": ["boolean", "object", "array"],
"minItems": 1,
"properties": {
"severity": {
"description": "Severity level. Level \"error\" will cause exit code 2.",
"type": "string",
"enum": ["default", "error", "warning", "warn", "off", "none"],
"default": "default"
}
}
},
"rules": {
"properties": {
"align": {
"description": "Enforces vertical alignment.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"arguments",
"elements",
"members",
"parameters",
"statements"
]
},
"minItems": 1,
"maxItems": 5,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/align/definitions/options/items"
},
"maxItems": 6,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/align/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/align/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"arrow-parens": {
"description": "Requires parentheses around the parameters of arrow function definitions.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["ban-single-arg-parens"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/arrow-parens/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/arrow-parens/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/arrow-parens/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"arrow-return-shorthand": {
"description": "Suggests to convert `() => { return x; }` to `() => x`.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["multiline"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/arrow-return-shorthand/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/arrow-return-shorthand/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/arrow-return-shorthand/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"ban": {
"description": "Bans the use of specific functions or global methods.",
"definitions": {
"options": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 3
},
{
"type": "object",
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 3
}
]
},
"message": {
"type": "string"
}
},
"required": ["name"],
"additionalProperties": false
}
]
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/ban/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/ban/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/ban/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"ban-comma-operator": {
"description": "Bans the comma operator.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"binary-expression-operand-order": {
"description": "In a binary expression, a literal should always be on the right-hand side if possible.\nFor example, prefer 'x + 1' over '1 + x'.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"class-name": {
"description": "Enforces PascalCased class and interface names.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"comment-format": {
"description": "Enforces formatting rules for single-line comments.",
"definitions": {
"options": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"enum": [
"check-space",
"check-lowercase",
"check-uppercase"
],
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
},
{
"type": "object",
"properties": {
"ignore-words": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"ignore-pattern": {
"type": "string"
}
},
"minProperties": 1,
"maxProperties": 1
}
]
},
"minItems": 1,
"maxItems": 4,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/comment-format/definitions/options/items"
},
"maxItems": 5,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/comment-format/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/comment-format/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"completed-docs": {
"description": "Enforces documentation for important items be filled out.",
"definitions": {
"options": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"enum": [
"classes",
"enums",
"enum-members",
"functions",
"interfaces",
"methods",
"namespaces",
"properties",
"types",
"variables"
]
},
{
"type": "object",
"properties": {
"classes": {
"type": "object",
"properties": {
"visibilities": {
"type": "string",
"enum": ["all", "exported", "internal"]
}
},
"additionalProperties": false
},
"enums": {
"type": "object",
"properties": {
"visibilities": {
"type": "string",
"enum": ["all", "exported", "internal"]
}
},
"additionalProperties": false
},
"enum-members": {
"type": "object",
"properties": {
"visibilities": {
"type": "string",
"enum": ["all", "exported", "internal"]
}
},
"additionalProperties": false
},
"functions": {
"type": "object",
"properties": {
"visibilities": {
"type": "string",
"enum": ["all", "exported", "internal"]
}
},
"additionalProperties": false
},
"interfaces": {
"type": "object",
"properties": {
"visibilities": {
"type": "string",
"enum": ["all", "exported", "internal"]
}
},
"additionalProperties": false
},
"methods": {
"type": "object",
"properties": {
"locations": {
"type": "string",
"enum": ["all", "instance", "static"]
},
"privacies": {
"type": "string",
"enum": ["all", "private", "protected", "public"]
}
},
"additionalProperties": false
},
"namespaces": {
"type": "object",
"properties": {
"visibilities": {
"type": "string",
"enum": ["all", "exported", "internal"]
}
},
"additionalProperties": false
},
"properties": {
"type": "object",
"properties": {
"locations": {
"type": "string",
"enum": ["all", "instance", "static"]
},
"privacies": {
"type": "string",
"enum": ["all", "private", "protected", "public"]
}
},
"additionalProperties": false
},
"types": {
"type": "object",
"properties": {
"visibilities": {
"type": "string",
"enum": ["all", "exported", "internal"]
}
},
"additionalProperties": false
},
"variables": {
"type": "object",
"properties": {
"visibilities": {
"type": "string",
"enum": ["all", "exported", "internal"]
}
},
"additionalProperties": false
}
}
}
]
},
"minItems": 1,
"maxItems": 10,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/completed-docs/definitions/options/items"
},
"maxItems": 11,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/completed-docs/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/completed-docs/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"curly": {
"description": "Enforces braces for `if`/`for`/`do`/`while` statements.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["as-needed", "ignore-same-line"],
"minItems": 1,
"maxItems": 2,
"uniqueItems": true
}
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/curly/definitions/options/items"
},
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/curly/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/curly/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"cyclomatic-complexity": {
"description": "Enforces a threshold of cyclomatic complexity.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "number",
"minimum": 2
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/cyclomatic-complexity/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/cyclomatic-complexity/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/cyclomatic-complexity/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"deprecation": {
"description": "Warns when deprecated APIs are used.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"encoding": {
"description": "Enforces UTF-8 file encoding.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"eofline": {
"description": "Ensures the file ends with a newline.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"file-header": {
"description": "Enforces a certain header comment for all files, matched by a regular expression.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 2
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/file-header/definitions/options/items"
},
"maxItems": 3,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/file-header/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/file-header/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"file-name-casing": {
"description": "Enforces a consistent file naming convention.",
"definitions": {
"file-name-cases": {
"type": "string",
"enum": ["camel-case", "pascal-case", "kebab-case", "snake-case"]
}
},
"type": "array",
"minItems": 2,
"items": [
{
"type": "boolean"
},
{
"oneOf": [
{
"$ref": "#/definitions/rules/properties/file-name-casing/definitions/file-name-cases"
},
{
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/rules/properties/file-name-casing/definitions/file-name-cases"
},
"minProperties": 1
}
]
}
]
},
"forin": {
"description": "Requires a `for ... in` statement to be filtered with an `if` statement.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"import-blacklist": {
"description": "Disallows importing the specified modules directly via `import` and `require`.\nInstead only sub modules may be imported from that module.",
"definitions": {
"options": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "object",
"additionalProperties": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
}
},
{
"type": "array",
"items": {
"type": "string"
},
"minLength": 1
}
]
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/import-blacklist/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/import-blacklist/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/import-blacklist/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"import-spacing": {
"description": "Ensures proper spacing between import statement keywords",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"indent": {
"description": "Enforces indentation with tabs or spaces.",
"definitions": {
"options": {
"type": "array",
"items": [
{
"type": "string",
"enum": ["tabs", "spaces"]
},
{
"type": "number",
"enum": [2, 4]
}
],
"minItems": 1,
"maxItems": 2
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
},
{
"$ref": "#/definitions/rules/properties/indent/definitions/options/items/0"
},
{
"$ref": "#/definitions/rules/properties/indent/definitions/options/items/1"
}
],
"maxItems": 3,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/indent/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/indent/definitions/options/items/0"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"jsdoc-format": {
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["check-multiline-start"]
},
"minItems": 0,
"maxItems": 1,
"uniqueItems": true
}
},
"description": "Enforces basic format rules for JSDoc comments.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/jsdoc-format/definitions/options/items"
},
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/jsdoc-format/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/jsdoc-format/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"label-position": {
"description": "Only allows labels in sensible locations.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"linebreak-style": {
"description": "Enforces a consistent linebreak style.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["LF", "CRLF"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/linebreak-style/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/linebreak-style/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/linebreak-style/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"max-classes-per-file": {
"description": "A file may not contain more than the specified number of classes",
"definitions": {
"options": {
"type": "array",
"items": [
{
"type": "number",
"minimum": 1
},
{
"type": "string",
"enum": ["exclude-class-expressions"]
}
],
"minItems": 1,
"maxItems": 2
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
},
{
"$ref": "#/definitions/rules/properties/max-classes-per-file/definitions/options/items/0"
},
{
"$ref": "#/definitions/rules/properties/max-classes-per-file/definitions/options/items/1"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 3,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/max-classes-per-file/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/max-classes-per-file/definitions/options/items/0"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"max-file-line-count": {
"description": "Requires files to remain under a certain number of lines",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "number",
"minimum": 1
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/max-file-line-count/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/max-file-line-count/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/max-file-line-count/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"max-line-length": {
"description": "Requires lines to be under a certain max length.",
"definitions": {
"options": {
"type": "array",
"items": {
"oneOf": [
{
"type": "number"
},
{
"type": "object",
"properties": {
"limit": {
"type": "number"
},
"ignore-pattern": {
"type": "string"
},
"check-strings": {
"type": "boolean"
},
"check-regex": {
"type": "boolean"
}
},
"additionalProperties": false
}
]
},
"minLength": 1,
"maxLength": 2
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/max-line-length/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/max-line-length/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/max-line-length/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"member-ordering": {
"description": "Enforces member ordering.",
"definitions": {
"kinds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"static-field",
"instance-field",
"static-method",
"instance-method",
"constructor",
"public-static-field",
"public-static-method",
"protected-static-field",
"protected-static-method",
"private-static-field",
"private-static-method",
"public-instance-field",
"protected-instance-field",
"private-instance-field",
"public-constructor",
"protected-constructor",
"private-constructor",
"public-instance-method",
"protected-instance-method",
"private-instance-method",
"public-static-accessor",
"protected-static-accessor",
"private-static-accessor",
"public-instance-accessor",
"protected-instance-accessor",
"private-instance-accessor"
]
},
"minItems": 1,
"maxItems": 15,
"uniqueItems": true
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"order": {
"oneOf": [
{
"type": "string",
"enum": [
"fields-first",
"instance-sandwich",
"statics-first"
]
},
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/rules/properties/member-ordering/definitions/kinds/items"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"kinds": {
"$ref": "#/definitions/rules/properties/member-ordering/definitions/kinds"
}
},
"additionalProperties": false
}
]
},
"minItems": 1,
"maxItems": 15,
"uniqueItems": true
}
]
},
"alphabetize": {
"type": "boolean"
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/member-ordering/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/member-ordering/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/member-ordering/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"newline-before-return": {
"description": "Enforces blank line before return when not the only line in the block.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"newline-per-chained-call": {
"description": "Requires that chained method calls be broken apart onto separate lines.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"new-parens": {
"description": "Requires parentheses when invoking a constructor via the `new` keyword.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-arg": {
"description": "Disallows use of `arguments.callee`.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-bitwise": {
"description": "Disallows bitwise operators.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-conditional-assignment": {
"description": "Disallows any type of assignment in conditionals.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-consecutive-blank-lines": {
"description": "Disallows one or more blank lines in a row.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "number",
"minimum": 1
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-consecutive-blank-lines/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-consecutive-blank-lines/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-consecutive-blank-lines/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-console": {
"description": "Bans the use of specified `console` methods.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-console/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-console/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-console/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-construct": {
"description": "Disallows access to the constructors of `String`, `Number`, and `Boolean`.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-debugger": {
"description": "Disallows `debugger` statements.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-default-export": {
"description": "Disallows default exports in ES6-style modules.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-duplicate-imports": {
"description": "Disallows multiple import statements from the same module.",
"definitions": {
"options": {
"type": "object",
"properties": {
"allow-namespace-imports": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
},
{
"$ref": "#/definitions/rules/properties/no-duplicate-imports/definitions/options"
}
],
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-duplicate-imports/definitions/options"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-duplicate-super": {
"description": "Warns if 'super()' appears twice in a constructor.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-duplicate-switch-case": {
"description": "Prevents duplicate cases in switch statements.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-duplicate-variable": {
"description": "Disallows duplicate variable declarations in the same block scope.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["check-parameters"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-duplicate-variable/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-duplicate-variable/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-duplicate-variable/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-dynamic-delete": {
"description": "Bans usage of the delete operator with computed key expressions.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-empty": {
"description": "Disallows empty blocks.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["allow-empty-catch", "allow-empty-functions"]
},
"minItems": 1,
"maxItems": 2,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-empty/definitions/options/items"
},
"maxItems": 3,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-empty/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-empty/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-eval": {
"description": "Disallows `eval` function invocations.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-for-in-array": {
"description": "Disallows iterating over an array with a for-in loop.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-implicit-dependencies": {
"description": "Disallows importing modules that are not listed as dependency in the projects package.json.",
"definitions": {
"options": {
"type": "array",
"items": [
{
"type": "string",
"enum": ["dev", "optional"]
},
{
"type": "array"
}
],
"minItems": 0,
"maxItems": 3
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"maxItems": 3,
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-implicit-dependencies/definitions/options/items"
},
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-implicit-dependencies/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-implicit-dependencies/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-import-side-effect": {
"description": "Avoid import statements with side-effect.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ignore-module": {
"type": "string"
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-import-side-effect/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-import-side-effect/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-import-side-effect/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-invalid-template-strings": {
"description": "Warns on use of `${` in non-template strings.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-invalid-this": {
"description": "Disallows using the `this` keyword outside of classes.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["check-function-in-method"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-invalid-this/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-invalid-this/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-invalid-this/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-irregular-whitespace": {
"description": "Disallow irregular whitespace outside of strings and comments",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-magic-numbers": {
"description": "Disallows the use constant number values outside of variable assignments.\nWhen no list of allowed values is specified, -1, 0 and 1 are allowed by default.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-magic-numbers/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-magic-numbers/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-magic-numbers/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-null-keyword": {
"description": "Disallows use of the `null` keyword literal.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-parameter-reassignment": {
"description": "Disallows reassigning parameters.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-reference": {
"description": "Disallows `/// <reference path=>` imports (use ES6-style imports instead).",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-return-await": {
"description": "Disallows unnecessary `return await`.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-require-imports": {
"description": "Disallows invocation of `require()`.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-shadowed-variable": {
"description": "Disallows shadowing variable declarations.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"class": {
"type": "boolean"
},
"enum": {
"type": "boolean"
},
"function": {
"type": "boolean"
},
"import": {
"type": "boolean"
},
"interface": {
"type": "boolean"
},
"namespace": {
"type": "boolean"
},
"typeAlias": {
"type": "boolean"
},
"typeParameter": {
"type": "boolean"
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-shadowed-variable/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-shadowed-variable/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-shadowed-variable/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-sparse-arrays": {
"description": "Forbids array literals to contain missing elements.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-string-literal": {
"description": "Forbids unnecessary string literal property access.\nAllows `obj[\"prop-erty\"]` (can't be a regular property access).\nDisallows `obj[\"property\"]` (should be `obj.property`).",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-string-throw": {
"description": "Flags throwing plain strings or concatenations of strings because only Errors produce proper stack traces.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-submodule-imports": {
"description": "Disallows importing any submodule.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-submodule-imports/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-submodule-imports/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-submodule-imports/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-switch-case-fall-through": {
"description": "Disallows falling through case statements.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-this-assignment": {
"description": "Disallows unnecessary references to `this`.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"allow-destructuring": {
"type": "boolean"
},
"allowed-names": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-this-assignment/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-this-assignment/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-this-assignment/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-trailing-whitespace": {
"description": "Disallows trailing whitespace at the end of a line.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ignore-comments",
"ignore-jsdoc",
"ignore-template-strings",
"ignore-blank-lines"
]
},
"minItems": 1,
"maxItems": 4,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-trailing-whitespace/definitions/options/items"
},
"maxItems": 5,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-trailing-whitespace/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-trailing-whitespace/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unnecessary-callback-wrapper": {
"description": "Replaces `x => f(x)` with just `f`.\nTo catch more cases, enable `only-arrow-functions` and `arrow-return-shorthand` too.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unnecessary-class": {
"description": "Disallows classes that are not strictly necessary.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"allow-constructor-only",
"allow-empty-class",
"allow-static-only"
]
},
"minLength": 0,
"maxLength": 3
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-unnecessary-class/definitions/options/items"
},
"maxItems": 4,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-unnecessary-class/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-unnecessary-class/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unnecessary-initializer": {
"description": "Forbids a 'var'/'let' statement or destructuring initializer to be initialized to 'undefined'.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unsafe-finally": {
"description": "Disallows control flow statements, such as `return`, `continue` `break` and `throws` in finally blocks.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unused-expression": {
"description": "Disallows unused expression statements.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"allow-fast-null-checks",
"allow-new",
"allow-tagged-template"
]
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-unused-expression/definitions/options/items"
},
"maxItems": 4,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-unused-expression/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-unused-expression/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-use-before-declare": {
"description": "Disallows usage of variables before their declaration.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-var-keyword": {
"description": "Disallows usage of the `var` keyword.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-void-expression": {
"description": "Requires expressions of type `void` to appear in statement position.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["ignore-arrow-function-shorthand"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/no-void-expression/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/no-void-expression/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/no-void-expression/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"number-literal-format": {
"description": "Checks that decimal literals should begin with '0.' instead of just '.', and should not end with a trailing '0'.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"object-literal-key-quotes": {
"description": "Enforces consistent object literal property quote style.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"always",
"as-needed",
"consistent",
"consistent-as-needed"
]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/object-literal-key-quotes/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/object-literal-key-quotes/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/object-literal-key-quotes/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"object-literal-shorthand": {
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["always", "never"]
},
"minItems": 1,
"maxItems": 2,
"uniqueItems": true
}
},
"description": "Enforces use of ES6 object literal shorthand when possible.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/object-literal-shorthand/definitions/options/items"
},
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/object-literal-shorthand/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/object-literal-shorthand/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"object-literal-sort-keys": {
"description": "Checks ordering of keys in object literals.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ignore-case",
"locale-compare",
"match-declaration-order",
"shorthand-first"
]
},
"minItems": 1,
"maxItems": 4,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/object-literal-sort-keys/definitions/options/items"
},
"maxItems": 5,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/object-literal-sort-keys/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/object-literal-sort-keys/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"one-line": {
"description": "Requires the specified tokens to be on the same line as the expression preceding them.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"check-catch",
"check-finally",
"check-else",
"check-open-brace",
"check-whitespace"
]
},
"minItems": 1,
"maxItems": 5,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/one-line/definitions/options/items"
},
"maxItems": 6,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/one-line/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/one-line/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"one-variable-per-declaration": {
"description": "Disallows multiple variable definitions in the same declaration statement.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["ignore-for-loop"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/one-variable-per-declaration/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/one-variable-per-declaration/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/one-variable-per-declaration/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"only-arrow-functions": {
"description": "Disallows traditional (non-arrow) function expressions.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["allow-declarations", "allow-named-functions"]
},
"minItems": 1,
"maxItems": 2,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/only-arrow-functions/definitions/options/items"
},
"maxItems": 3,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/only-arrow-functions/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/only-arrow-functions/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"ordered-imports": {
"description": "Requires that import statements be alphabetized.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"grouped-imports": {
"type": "boolean"
},
"groups": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"match": {
"type": "string"
},
"order": {
"type": "number"
}
},
"required": ["match", "order"]
}
]
}
},
"import-sources-order": {
"type": "string",
"enum": [
"case-insensitive",
"case-insensitive-legacy",
"lowercase-first",
"lowercase-last",
"any"
]
},
"named-imports-order": {
"type": "string",
"enum": [
"case-insensitive",
"case-insensitive-legacy",
"lowercase-first",
"lowercase-last",
"any"
]
},
"module-source-path": {
"type": "string",
"enum": ["full", "basename"]
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/ordered-imports/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/ordered-imports/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/ordered-imports/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-conditional-expression": {
"description": "Recommends to use a conditional expression instead of assigning to the same thing in each branch of an if statement.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["check-else-if"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/prefer-conditional-expression/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/prefer-conditional-expression/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/prefer-conditional-expression/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-const": {
"description": "Requires that variable declarations use `const` instead of `let` and `var` if possible.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"destructuring": {
"type": "string",
"enum": ["all", "any"]
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/prefer-const/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/prefer-const/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/prefer-const/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-for-of": {
"description": "Recommends a 'for-of' loop over a standard 'for' loop if the index is only used to access the array being iterated.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-function-over-method": {
"description": "Warns for class methods that do not use 'this'.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["allow-public", "allow-protected"]
},
"minItems": 1,
"maxItems": 2,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/prefer-function-over-method/definitions/options/items"
},
"maxItems": 3,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/prefer-function-over-method/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/prefer-function-over-method/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-method-signature": {
"description": "Prefer `foo(): void` over `foo: () => void` in interfaces and types.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-object-spread": {
"description": "Enforces the use of the ES2015 object spread operator over `Object.assign()` where appropriate.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-switch": {
"description": "Prefer a `switch` statement to an `if` statement with simple `===` comparisons.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"min-cases": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/prefer-switch/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/prefer-switch/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/prefer-switch/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-template": {
"description": "Prefer a template expression over string literal concatenation.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["allow-single-concat"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/prefer-template/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/prefer-template/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/prefer-template/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-while": {
"description": "Prefer while loops instead of for loops without an initializer and incrementor.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"additionalProperties": false
}
]
},
"promise-function-async": {
"description": "Requires any function or method that returns a promise to be marked async.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"quotemark": {
"description": "Requires single or double quotes for string literals.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"single",
"double",
"jsx-single",
"jsx-double",
"avoid-escape",
"avoid-template"
]
},
"minItems": 1,
"maxItems": 4,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/quotemark/definitions/options/items"
},
"maxItems": 5,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/quotemark/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/quotemark/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"radix": {
"description": "Requires the radix parameter to be specified when calling `parseInt`.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"restrict-plus-operands": {
"description": "When adding two variables, operands must both be of type number or of type string.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"return-undefined": {
"description": "Prefer `return;` in void functions and `return undefined;` in value-returning functions.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"semicolon": {
"description": "Enforces consistent semicolon usage at the end of every statement.",
"definitions": {
"options": {
"type": "array",
"items": [
{
"type": "string",
"enum": ["always", "never"]
},
{
"type": "string",
"enum": [
"ignore-interfaces",
"ignore-bound-class-methods",
"strict-bound-class-methods"
]
}
],
"minItems": 1,
"maxItems": 3
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
},
{
"$ref": "#/definitions/rules/properties/semicolon/definitions/options/items/0"
},
{
"$ref": "#/definitions/rules/properties/semicolon/definitions/options/items/1"
}
],
"maxItems": 3,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/semicolon/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/semicolon/definitions/options/items/0"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"space-before-function-paren": {
"description": "Require or disallow a space before function parenthesis",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"anonymous": {
"type": "string",
"enum": ["always", "never"]
},
"asyncArrow": {
"type": "string",
"enum": ["always", "never"]
},
"constructor": {
"type": "string",
"enum": ["always", "never"]
},
"method": {
"type": "string",
"enum": ["always", "never"]
},
"named": {
"type": "string",
"enum": ["always", "never"]
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/space-before-function-paren/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/space-before-function-paren/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/space-before-function-paren/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"space-within-parens": {
"description": "Enforces spaces within parentheses or disallow them.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "number",
"min": 0
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/space-within-parens/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/space-within-parens/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/space-within-parens/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"switch-default": {
"description": "Require a `default` case in all `switch` statements.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"switch-final-break": {
"description": "Checks whether the final clause of a switch statement ends in `break;`.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["always"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/switch-final-break/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/switch-final-break/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/switch-final-break/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"trailing-comma": {
"description": "Requires or disallows trailing commas in array and object literals, destructuring assignments, function typings, named imports and exports and function parameters.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"multiline": {
"anyOf": [
{
"type": "string",
"enum": ["always", "never"]
},
{
"type": "object",
"properties": {
"arrays": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"exports": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"functions": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"imports": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"objects": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"typeLiterals": {
"type": "string",
"enum": ["always", "never", "ignore"]
}
},
"additionalProperties": false
}
]
},
"singleline": {
"anyOf": [
{
"type": "string",
"enum": ["always", "never"]
},
{
"type": "object",
"properties": {
"arrays": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"exports": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"functions": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"imports": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"objects": {
"type": "string",
"enum": ["always", "never", "ignore"]
},
"typeLiterals": {
"type": "string",
"enum": ["always", "never", "ignore"]
}
},
"additionalProperties": false
}
]
},
"esSpecCompliant": {
"description": "Option to forbid trailing comma after rest",
"type": "boolean"
}
},
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/trailing-comma/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/trailing-comma/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/trailing-comma/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"triple-equals": {
"description": "Requires `===` and `!==` in place of `==` and `!=`.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["allow-null-check", "allow-undefined-check"]
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/triple-equals/definitions/options/items"
},
"maxItems": 3,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/triple-equals/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/triple-equals/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"typeof-compare": {
"description": "Makes sure result of `typeof` is compared to correct string values",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"use-isnan": {
"description": "Enforces use of the `isNaN()` function to check for NaN references instead of a comparison to the `NaN` constant.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"variable-name": {
"description": "Checks variable names for various errors.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"check-format",
"require-const-for-all-caps",
"allow-leading-underscore",
"allow-trailing-underscore",
"allow-pascal-case",
"allow-snake-case",
"ban-keywords"
]
},
"minItems": 1,
"maxItems": 7,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/variable-name/definitions/options/items"
},
"maxItems": 7,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/variable-name/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/variable-name/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"whitespace": {
"description": "Enforces whitespace style conventions.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"check-branch",
"check-decl",
"check-operator",
"check-module",
"check-separator",
"check-rest-spread",
"check-type",
"check-typecast",
"check-type-operator",
"check-preblock",
"check-postbrace"
],
"minItems": 1,
"maxItems": 10,
"uniqueItems": true
}
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/rules/properties/whitespace/definitions/options/items"
},
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/rules/properties/whitespace/definitions/options"
},
{
"$ref": "#/definitions/rules/properties/whitespace/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
}
}
},
"tsRules": {
"properties": {
"adjacent-overload-signatures": {
"description": "Enforces function overloads to be consecutive.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"array-type": {
"description": "Requires using either 'T[]' or 'Array<T>' for arrays.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["array", "generic", "array-simple"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/array-type/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/array-type/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/array-type/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"await-promise": {
"description": "Warns for an awaited value that is not a Promise.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/await-promise/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/await-promise/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/await-promise/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"ban-types": {
"description": "Bans specific types from being used. Does not ban the corresponding runtime objects from being used.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 2
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/ban-types/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/ban-types/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/ban-types/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"callable-types": {
"description": "An interface or literal type with just a call signature can be written as a function type.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"interface-name": {
"description": "Requires interface names to begin with a capital 'I'",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["always-prefix", "never-prefix"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/interface-name/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/interface-name/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/interface-name/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"interface-over-type-literal": {
"description": "Prefer an interface declaration over a type literal (`type T = { ... }`)",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"match-default-export-name": {
"description": "Requires that a default import have the same name as the declaration it imports.\nDoes nothing for anonymous default exports.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"member-access": {
"description": "Requires explicit visibility declarations for class members.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"no-public",
"check-accessor",
"check-constructor",
"check-parameter-property"
]
},
"minItems": 1,
"maxItems": 4,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/member-access/definitions/options/items"
},
"maxItems": 4,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/member-access/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/member-access/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-angle-bracket-type-assertion": {
"description": "Requires the use of `as Type` for type assertions instead of `<Type>`.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-any": {
"description": "Disallows usages of `any` as a type declaration.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"ignore-rest-args": {
"type": "boolean"
}
}
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-boolean-literal-compare": {
"description": "Warns on comparison to a boolean literal, as in `x === true`.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-empty-interface": {
"description": "Forbids empty interfaces.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-floating-promises": {
"description": "Promises returned by functions must be handled appropriately.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/no-floating-promises/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/no-floating-promises/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/no-floating-promises/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-inferrable-types": {
"description": "Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["ignore-params", "ignore-properties"]
},
"minItems": 1,
"maxItems": 2,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/no-inferrable-types/definitions/options/items"
},
"maxItems": 3,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/no-inferrable-types/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/no-inferrable-types/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-inferred-empty-object-type": {
"description": "Disallow type inference of {} (empty object type) at function and constructor call sites",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-internal-module": {
"description": "Disallows internal `module`",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-mergeable-namespace": {
"description": "Disallows mergeable namespaces in the same file.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-misused-new": {
"description": "Warns on apparent attempts to define constructors for interfaces or `new` for classes.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-namespace": {
"description": "Disallows use of internal `module`s and `namespace`s.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["allow-declarations"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/no-namespace/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/no-namespace/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/no-namespace/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-non-null-assertion": {
"description": "Disallows non-null assertions.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-object-literal-type-assertion": {
"description": "Forbids an object literal to appear in a type assertion expression.\nCasting to `any` is still allowed.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-parameter-properties": {
"description": "Disallows parameter properties in class constructors.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-redundant-jsdoc": {
"description": "Forbids JSDoc which duplicates TypeScript functionality.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-reference-import": {
"description": "Don't `<reference types=\"foo\" />` if you import `foo` anyway.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unbound-method": {
"description": "Warns when a method is used as outside of a method call.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": ["ignore-static"]
},
"minItems": 1,
"maxItems": 1
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/no-unbound-method/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/no-unbound-method/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/no-unbound-method/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unnecessary-qualifier": {
"description": "Warns when a namespace qualifier (`A.x`) is unnecessary.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unnecessary-type-assertion": {
"description": "Warns if a type assertion does not change the type of an expression.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/no-unnecessary-type-assertion/definitions/options/items"
},
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/no-unnecessary-type-assertion/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/no-unnecessary-type-assertion/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unsafe-any": {
"description": "Warns when using an expression of type 'any' in a dynamic way.\nUses are only allowed if they would work for `{} | null | undefined`.\nType casts and tests are allowed.\nExpressions that work on all values (such as `\"\" + x`) are allowed.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"no-unused-variable": {
"description": "Disallows unused imports, variables, functions and private class members. Similar to tsc's --noUnusedParameters and --noUnusedLocals options, but does not interrupt code compilation.",
"definitions": {
"options": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"enum": ["check-parameters"]
},
{
"type": "object",
"properties": {
"ignore-pattern": {
"type": "string"
}
},
"additionalProperties": false
}
]
},
"minItems": 1,
"maxItems": 2,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/no-unused-variable/definitions/options/items"
},
"maxItems": 3,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/no-unused-variable/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/no-unused-variable/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"no-var-requires": {
"description": "Disallows the use of require statements except in import statements.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"prefer-readonly": {
"description": "Requires that private variables are marked as `readonly` if theyre never modified outside of the constructor.",
"definitions": {
"options": {
"type": "array",
"items": {
"enum": ["only-inline-lambdas"],
"type": "string"
}
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/prefer-readonly/definitions/options/items"
},
"maxItems": 2,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/prefer-readonly/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/prefer-readonly/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"strict-boolean-expressions": {
"description": "Restricts the types allowed in boolean expressions. By default only booleans are allowed.\n\nThe following nodes are checked:\n* Arguments to the `!`, `&&`, and `||` operators\n* The condition in a conditional expression (`cond ? x : y`)\n* Conditions for `if`, `for`, `while`, and `do-while` statements.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"allow-null-union",
"allow-undefined-union",
"allow-string",
"allow-enum",
"allow-number",
"allow-mix",
"allow-boolean-or-undefined",
"ignore-rhs"
]
},
"minItems": 1,
"maxItems": 8,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/strict-boolean-expressions/definitions/options/items"
},
"maxItems": 6,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/strict-boolean-expressions/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/strict-boolean-expressions/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"strict-type-predicates": {
"description": "Warns for type predicates that are always true or always false.\nWorks for 'typeof' comparisons to constants (e.g. 'typeof foo === \"string\"'), and equality comparison to 'null'/'undefined'.\n(TypeScript won't let you compare '1 === 2', but it has an exception for '1 === undefined'.)\nDoes not yet work for 'instanceof'.\nDoes *not* warn for 'if (x.y)' where 'x.y' is always truthy. For that, see strict-boolean-expressions.\n\nThis rule requires `strictNullChecks` to work properly.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"typedef": {
"description": "Requires type definitions to exist.",
"definitions": {
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"call-signature",
"arrow-call-signature",
"parameter",
"arrow-parameter",
"property-declaration",
"variable-declaration",
"member-variable-declaration",
"object-destructuring",
"array-destructuring"
]
},
"minItems": 1,
"maxItems": 9,
"uniqueItems": true
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": {
"$ref": "#/definitions/tsRules/properties/typedef/definitions/options/items"
},
"maxItems": 10,
"uniqueItems": true,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/typedef/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/typedef/definitions/options/items"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"typedef-whitespace": {
"description": "Requires or disallows whitespace for type definitions.",
"definitions": {
"options": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"call-signature": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
},
"index-signature": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
},
"parameter": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
},
"property-declaration": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
},
"variable-declaration": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
}
},
"additionalProperties": false
},
{
"type": "object",
"properties": {
"call-signature": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
},
"index-signature": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
},
"parameter": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
},
"property-declaration": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
},
"variable-declaration": {
"type": "string",
"enum": ["nospace", "onespace", "space"]
}
},
"additionalProperties": false
}
],
"minItems": 1,
"maxItems": 2
}
},
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
},
{
"$ref": "#/definitions/tsRules/properties/typedef-whitespace/definitions/options/items/0"
},
{
"$ref": "#/definitions/tsRules/properties/typedef-whitespace/definitions/options/items/1"
}
],
"maxItems": 3,
"properties": {
"options": {
"description": "An option value or an array of multiple option values.",
"oneOf": [
{
"$ref": "#/definitions/tsRules/properties/typedef-whitespace/definitions/options"
},
{
"$ref": "#/definitions/tsRules/properties/typedef-whitespace/definitions/options/items/0"
}
]
},
"severity": {}
},
"additionalProperties": false
}
]
},
"type-literal-delimiter": {
"description": "Checks that type literal members are separated by semicolons.\nEnforces a trailing semicolon for multiline type literals.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"singleLine": {
"type": "string",
"enum": ["always", "never"]
}
}
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"unified-signatures": {
"description": "Warns for any two overloads that could be unified into one by using a union or an optional/rest parameter.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
},
"use-default-type-parameter": {
"description": "Warns if an explicitly specified type argument is the default for that type parameter.",
"allOf": [
{
"$ref": "#/definitions/rule"
},
{
"items": [
{
"type": "boolean"
}
],
"additionalItems": false,
"properties": {
"severity": {}
},
"additionalProperties": false
}
]
}
}
}
},
"properties": {
"extends": {
"description": "The name of a built-in configuration preset, or a path or array of paths to other configuration files which are extended by this configuration. These values are handled using node module resolution semantics.",
"type": ["string", "array"],
"items": {
"type": "string"
}
},
"rulesDirectory": {
"description": "A path to a directory or an array of paths to directories of custom rules. These values are handled using node module resolution semantics, if an `index.js` is placed in your rules directory.",
"type": ["string", "array"],
"items": {
"type": "string"
}
},
"rules": {
"description": "A map of rules that will be used to lint TypeScript files. These rules apply to `.ts` and `.tsx` files.",
"allOf": [
{
"$ref": "#/definitions/tsRules"
},
{
"$ref": "#/definitions/rules"
}
]
},
"jsRules": {
"description": "A map of rules that will be used to lint JavaScript files. These rules apply to `.js` and `.jsx` files.",
"$ref": "#/definitions/rules"
},
"defaultSeverity": {
"description": "The severity level used when a rule specifies \"default\" as its severity level. If undefined, \"error\" is used.",
"type": "string",
"enum": ["error", "warning", "warn", "off", "none"],
"default": "error"
},
"linterOptions": {
"description": "Additional linter options.",
"type": "object",
"properties": {
"exclude": {
"description": "An array of globs. Any file matching these globs will not be linted. All exclude patterns are relative to the configuration file they were specified in.",
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"title": "JSON schema for the TSLint configuration files.",
"type": "object"
}