UNPKG

alm

Version:

The best IDE for TypeScript

432 lines (428 loc) 13 kB
{ "title": "JSON schema for the TSLint configuration files", "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "additionalProperties": true, "definitions": { "ruledefinitions": { "properties": { "align": { "description": "Enforces vertical alignment for parameters, arguments and/or statements", "type": [ "array" ], "items": { "enum": [ true, false, "parameters", "arguments", "statements" ] } }, "ban": { "description": "Bans the use of specific functions", "type": [ "boolean", "array" ], "items": { "type": [ "boolean", "array" ] } }, "class-name": { "description": "Enforces PascalCased class and interface names", "type": "boolean" }, "comment-format": { "description": "Enforces rules for single-line comments", "type": "array", "items": { "enum": [ true, false, "check-space", "check-lowercase", "check-uppercase" ] } }, "component-class-suffix": { "description": "Enforces all components having the suffix of 'Component'", "type": "boolean" }, "component-selector-name": { "description": "Enforces naming conventions for components", "type": "array", "items": { "enum": [ true, false, "camelCase", "kebab-case" ] } }, "component-selector-prefix": { "description": "Enforces all components to have a uniform prefix", "type": "array", "items": { "enum": [ true, false, "sg" ] } }, "component-selector-type": { "description": "Enforces the type of a component", "type": "array", "items": { "enum": [ true, false, "attribute", "element" ] } }, "curly": { "description": "Enforces braces for if/for/do/while statements", "type": "boolean" }, "directive-class-suffix": { "description": "Enforces all components having the suffix of 'Directive'", "type": "boolean" }, "directive-selector-name": { "description": "Enforces naming conventions for directives", "type": "array", "items": { "enum": [ true, false, "camelCase", "kebab-case" ] } }, "directive-selector-prefix": { "description": "Enforces all directives to have a uniform prefix", "type": "array", "items": { "enum": [ true, false, "sg" ] } }, "directive-selector-type": { "description": "Enforces the type of a directive", "type": "array", "items": { "enum": [ true, false, "attribute", "element" ] } }, "eofline": { "description": "Enforces the file to end with a newline", "type": "boolean" }, "forin": { "description": "Enforces a for...in statement to be filtered with an if statement", "type": "boolean" }, "indent": { "description": "Enforces consistent indentation levels", "type": "array", "items": { "type": [ "boolean", "integer", "string" ] } }, "interface-name": { "description": "Enforces the rule that interface names must or must not begin with a capital 'I'", "type": "array", "items": { "enum": [ true, false, "always-prefix", "never-prefix" ] } }, "jsdoc-format": { "description": "Enforces basic format rules for jsdoc comments", "type": "boolean" }, "label-position": { "description": "Enforces labels only on sensible statements", "type": "boolean" }, "label-undefined": { "description": "Checks that labels are defined before usage", "type": "boolean" }, "max-line-length": { "description": "Sets the maximum length of a line", "type": "array", "items": { "type": [ "boolean", "integer" ] } }, "member-access": { "description": "Enforces using explicit visibility on class members", "type": [ "array", "boolean" ], "items": { "type": [ "boolean", "string" ], "enum": [ true, false, "check-accessor", "check-constructor" ] } }, "member-ordering": { "description": "Enforces chosen member ordering", "type": "array", "items": { "type": [ "object", "boolean", "string" ] } }, "no-any": { "description": "Disallows usages of any as a type decoration", "type": "boolean" }, "no-arg": { "description": "Disallows access to arguments.callee", "type": "boolean" }, "no-attribute-parameter-decorator": { "description": "Disallows the @Attribute decorator in constructors", "type": "boolean" }, "no-bitwise": { "description": "Disallows bitwise operators", "type": "boolean" }, "no-conditional-assignment": { "description": "Disallows any type of assignment in any conditionals; this applies to do-while, for, if, and while statements", "type": "boolean" }, "no-console": { "description": "Disallows access to the specified functions on console", "type": "array", "items": { "enum": [ true, false, "assert", "count", "debug", "dir", "dirxml", "error", "group", "groupCollapsed", "groupEnd", "info", "log", "profile", "profileEnd", "table", "time", "timeEnd", "timeStamp", "trace", "warn" ] } }, "no-consecutive-blank-lines": { "description": "Disallows having more than one blank line in a row in a file", "type": "boolean" }, "no-construct": { "description": "Disallows access to the constructors of String, Number and Boolean", "type": "boolean" }, "no-constructor-vars": { "description": "Disallows the public and private modifiers for constructor parameters", "type": "boolean" }, "no-debugger": { "description": "Disallows debugger statements", "type": "boolean" }, "no-duplicate-key": { "description": "Disallows duplicate keys in object literals", "type": "boolean" }, "no-duplicate-variable": { "description": "Disallows duplicate variable declarations in the same block scope", "type": "boolean" }, "no-shadowed-variable": { "description": "Disallows shadowed variable declarations", "type": "boolean" }, "no-empty": { "description": "Disallows empty blocks", "type": "boolean" }, "no-eval": { "description": "Disallows eval function invocations", "type": "boolean" }, "no-forward-ref": { "description": "Enforces avoidence of utilizing forwardRef's in classes and variables", "type": "boolean" }, "no-inferrable-types": { "description": "Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean", "type": ["boolean", "array"] }, "no-input-rename": { "description": "Disallows the renaming of input properties", "type": "boolean" }, "no-internal-module": { "description": "Disallows internal module, use namespace instead", "type": "boolean" }, "no-output-rename": { "description": "Disallows the renaming of output properties", "type": "boolean" }, "no-require-imports": { "description": "Disallows require() style imports", "type": "boolean" }, "no-string-literal": { "description": "Disallows object access via string literals", "type": "boolean" }, "no-switch-case-fall-through": { "description": "Disallows falling through case statements", "type": "boolean" }, "no-trailing-comma": { "description": "Disallows trailing comma within object literals", "type": "boolean" }, "no-trailing-whitespace": { "description": "Disallows trailing whitespace at the end of a line", "type": "boolean" }, "no-unreachable": { "description": "Disallows unreachable code after break, catch, throw, and return statements", "type": "boolean" }, "no-unused-expression": { "description": "Disallows unused expression statements", "type": "boolean" }, "no-unused-variable": { "description": "Disallows unused imports, variables, functions and private class members", "type": [ "array", "boolean" ], "items": { "type": [ "boolean", "string", "object" ] } }, "no-use-before-declare": { "description": "Disallows usage of variables before their declaration", "type": "boolean" }, "no-var-keyword": { "description": "Disallows usage of the var keyword, use let or const instead", "type": "boolean" }, "no-var-requires": { "description": "Disallows the use of require statements except in import statements", "type": "boolean" }, "one-line": { "description": "Enforces the specified tokens to be on the same line as the expression preceding it", "type": "array", "items": { "enum": [ true, false, "check-open-brace", "check-catch", "check-finally", "check-else", "check-whitespace" ] } }, "pipe-naming": { "description": "Enforces naming conventions for Pipes", "type": "array", "items": { "enum": [ true, "camelCase", "sg" ] } }, "quotemark": { "description": "Enforces consistent single or double quoted string literals", "type": "array", "items": { "enum": [ true, false, "double", "single", "jsx-double", "jsx-single", "avoid-escape" ] } }, "radix": { "description": "Enforces the radix parameter of parseInt", "type": "boolean" }, "semicolon": { "description": "Enforces semicolons at the end of every statement", "type": "array", "items": { "enum": [ true, false, "always", "never"] } }, "sort-object-literal-keys": { "description": "Checks that keys in object literals are declared in alphabetical order", "type": "boolean" }, "switch-default": { "description": "Enforces a default case in switch statements", "type": "boolean" }, "triple-equals": { "description": "Enforces === and !== in favor of == and !=", "type": [ "array", "boolean" ], "items": { "type": [ "boolean", "string" ], "enum": [ true, false, "allow-null-check", "allow-undefined-check" ] } }, "typedef": { "description": "Enforces type definitions to exist", "type": "array", "items": { "enum": [ true, false, "call-signature", "parameter", "arrow-parameter", "property-declaration", "variable-declaration", "member-variable-declaration" ] } }, "typedef-whitespace": { "description": "Enforces spacing whitespace for type definitions", "type": "array", "items": { "type": [ "object", "boolean" ] } }, "use-host-property-decorator": { "description": "Enforces the use of @HostBindings and @HostListeners instead of the host property", "type": "boolean" }, "use-input-property-decorator": { "description": "Enforces the use of the @Input property decorator instead of the inputs property", "type": "boolean" }, "use-life-cycle-interface": { "description": "Enforces all life cycle code using the lifecycle hook interfaces", "type": "boolean" }, "use-output-property-decorator": { "description": "Enforces the use of the @Output property decorator instead of the outputs property", "type": "boolean" }, "use-pipe-transform-interface": { "description": "Enforces all pipes using the PipeTransform interface", "type": "boolean" }, "use-strict": { "description": "Enforces ECMAScript 5's strict mode", "type": "array", "items": { "enum": [ true, false, "check-module", "check-function" ] } }, "variable-name": { "description": "Allows only camelCased or UPPER_CASED variable names", "type": [ "array", "boolean" ], "items": { "enum": [ true, false, "check-format", "allow-leading-underscore", "allow-trailing-underscore", "allow-pascal-case", "ban-keywords" ] } }, "whitespace": { "description": "Enforces spacing whitespace", "type": "array", "items": { "enum": [ true, false, "check-branch", "check-decl", "check-operator", "check-module", "check-separator", "check-type", "check-typecast" ] } } }, "type": "object" } }, "properties": { "rulesDirectory": { "description": "The directory where the codelytics rules live", "type": "array", "items": { "type": "string" } }, "rules": { "$ref": "#/definitions/ruledefinitions" }, "extends": { "description": "Extend another configuration (built in config OR a node resolvable .json file) ", "type": "string" } } }