@nationalbankbelgium/code-style
Version:
Front-End code style
227 lines (225 loc) • 7.68 kB
JSON
{
"rules": {
"member-access": [true, "check-accessor", "check-constructor", "check-parameter-property"],
"member-ordering": [
false,
{
"order": "fields-first"
}
],
"no-any": false,
"no-empty-interface": false,
"no-inferrable-types": [true, "ignore-params"],
"no-internal-module": true,
"no-namespace": [true, "allow-declarations"],
"no-reference": true,
"no-var-requires": false,
"typedef": [true, "call-signature", "parameter", "property-declaration"],
"typedef-whitespace": [
false,
{
"call-signature": "nospace",
"index-signature": "nospace",
"parameter": "nospace",
"property-declaration": "nospace",
"variable-declaration": "nospace"
},
{
"call-signature": "nospace",
"index-signature": "nospace",
"parameter": "nospace",
"property-declaration": "nospace",
"variable-declaration": "nospace"
}
],
"unified-signatures": true,
"ban": [true, "window", "eval"],
"curly": true,
"forin": true,
"label-position": true,
"no-arg": true,
"no-bitwise": true,
"no-conditional-assignment": true,
"no-console": [false, "debug", "info", "time", "timeEnd", "trace"],
"no-construct": true,
"no-debugger": true,
"no-duplicate-variable": true,
"no-dynamic-delete": false,
"no-empty": [true, "allow-empty-catch"],
"no-eval": true,
"no-implicit-dependencies": false,
"no-invalid-template-strings": true,
"no-invalid-this": true,
"no-null-keyword": true,
"no-object-literal-type-assertion": true,
"no-return-await": true,
"no-shadowed-variable": true,
"no-sparse-arrays": true,
"no-string-literal": false,
"no-string-throw": true,
"no-submodule-imports": [false, "@nationalbankbelgium", "rxjs", "lodash", "core-js", "valdr", "angular-material"],
"no-switch-case-fall-through": true,
"no-this-assignment": false,
"no-unnecessary-class": ["allow-static-only"],
"no-unsafe-finally": true,
"no-unused-expression": true,
"no-var-keyword": true,
"prefer-conditional-expression": false,
"prefer-object-spread": true,
"prefer-template": false,
"radix": true,
"switch-default": true,
"triple-equals": true,
"use-isnan": true,
"cyclomatic-complexity": [true, 20],
"no-default-export": true,
"no-duplicate-imports": true,
"no-mergeable-namespace": true,
"no-require-imports": false,
"object-literal-sort-keys": false,
"align": [false, "arguments", "statements", "parameters", "members", "elements"],
"callable-types": true,
"class-name": true,
"comment-format": [true, "check-space"],
"file-header": false,
"encoding": false,
"interface-name": [false, "never-prefix"],
"interface-over-type-literal": true,
"jsdoc-format": [true, "check-multiline-start"],
"no-angle-bracket-type-assertion": false,
"no-parameter-properties": false,
"no-redundant-jsdoc": true,
"no-reference-import": true,
"no-unnecessary-callback-wrapper": false,
"object-literal-shorthand": false,
"one-variable-per-declaration": true,
"switch-final-break": false,
"variable-name": [
true,
"check-format",
"require-const-for-all-caps",
"allow-leading-underscore",
"allow-trailing-underscore",
"ban-keywords"
],
"whitespace": [
false,
"check-branch",
"check-decl",
"check-operator",
"check-module",
"check-separator",
"check-rest-spread",
"check-type",
"check-typecast",
"check-type-operator",
"check-preblock"
],
"prefer-const": [
true,
{
"destructuring": "all"
}
],
"no-magic-numbers": false,
"import-blacklist": [true, "@angular/material", "lodash", "rxjs/internal", "rxjs/index", "rxjs/Rx", "lodash-es"],
"ordered-imports": false,
"max-classes-per-file": false, // [true, 1],
"prefer-for-of": true,
"array-type": false, // [true, "array"]
"arrow-return-shorthand": true,
"binary-expression-operand-order": false,
"no-unnecessary-initializer": true,
"no-misused-new": true,
"prefer-method-signature": false,
"prefer-switch": [
true,
{
"min-cases": 3
}
],
"prefer-function-over-method": false,
"prefer-while": true,
"no-import-side-effect": [
true,
{
"ignore-module": "(reflect-metadata|core-js|ngrx-store|angular|moment|polyfills|vendor|typings|\\.css|\\.pcss)"
}
],
"no-non-null-assertion": true,
"no-parameter-reassignment": false,
"adjacent-overload-signatures": true,
"ban-comma-operator": false,
"ban-types": false,
"no-duplicate-super": true,
"no-duplicate-switch-case": true,
"newline-before-return": false,
"newline-per-chained-call": false,
"file-name-casing": [true, { "public_api.ts": "snake-case", ".*": "kebab-case" }],
"ban-ts-ignore": true,
"function-constructor": true,
"unnecessary-constructor": [true, { "check-super-calls": true }],
"no-tautology-expression": true,
"static-this": true,
"unnecessary-else": [true, { "allow-else-if": true }],
"no-null-undefined-union": true,
"no-async-without-await": true,
"invalid-void": true,
// TSLint rules that were previously on tslint:recommended prior to v6.0
//"arrow-parens": true,
//"eofline": true,
//"import-spacing": true,
//"indent": [true, "spaces"],
//"max-line-length": [true, 120],
//"no-consecutive-blank-lines": true,
//"object-literal-key-quotes": [true, "consistent-as-needed"],
// "one-line": [true,
// "check-catch",
// "check-else",
// "check-finally",
// "check-open-brace",
// "check-whitespace"],
//"quotemark": [true, "double", "avoid-escape"],
//"semicolon": [true, "always"],
// "space-before-function-paren": [true, {
// "anonymous": "never",
// "asyncArrow": "always",
// "constructor": "never",
// "method": "never",
// "named": "never"
// }
// ],
// "trailing-comma": [true, {
// "esSpecCompliant": true,
// "multiline": "always",
// "singleline": "never"
// }
// ],
// TSlint rules that require type info
"no-inferred-empty-object-type": true,
"no-void-expression": [true, "ignore-arrow-function-shorthand"],
"no-boolean-literal-compare": true,
"no-unnecessary-qualifier": true,
"no-floating-promises": true,
"match-default-export-name": true,
"return-undefined": true,
"deprecation": true,
"use-default-type-parameter": true,
"await-promise": true,
"no-for-in-array": true,
"no-unbound-method": [true, { "ignore-static": true, "whitelist": ["expect"], "allow-typeof": true, "allow-delete": true }],
"no-unnecessary-type-assertion": true,
"restrict-plus-operands": true,
"unnecessary-bind": true,
"strict-comparisons": [true, { "allow-object-equal-comparison": true, "allow-string-order-comparison": true }],
"no-promise-as-boolean": true
// "strict-boolean-expressions": true,
// "promise-function-async": true,
// "completed-docs": true,
// "no-unsafe-any": true,
// "strict-type-predicates": true,
// "no-use-before-declare": true, // only useful when using the var keyword, deprecated for TypeScript > 2.9.0
// "no-unused-variable": true, // deprecated as from TSLint 5.11.0
// "prefer-readonly": true,
}
}