mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
50b9fe2246
Currently we have a convention for prefixing private members with an underscore, however there's nothing verifying it. This comes up occasionally in PRs and there some cases that have deviated from the pattern. These changes add a tslint rule that allows us to customize the naming pattern for the various modifiers.
158 lines
4.4 KiB
JSON
158 lines
4.4 KiB
JSON
{
|
|
"rulesDirectory": [
|
|
"./tools/tslint-rules/",
|
|
"node_modules/codelyzer"
|
|
],
|
|
"rules": {
|
|
"max-line-length": [true, 100],
|
|
// Disable this flag because of SHA tslint#48b0c597f9257712c7d1f04b55ed0aa60e333f6a
|
|
// TSLint now shows warnings if types for properties are inferred. This rule needs to be
|
|
// disabled because all properties need to have explicit types set to work for Dgeni.
|
|
"no-inferrable-types": false,
|
|
"class-name": true,
|
|
"comment-format": [
|
|
true,
|
|
"check-space"
|
|
],
|
|
"indent": [
|
|
true,
|
|
"spaces"
|
|
],
|
|
"eofline": true,
|
|
"no-duplicate-variable": true,
|
|
"no-eval": true,
|
|
"no-arg": true,
|
|
"no-internal-module": true,
|
|
"no-trailing-whitespace": true,
|
|
"no-bitwise": true,
|
|
"no-shadowed-variable": true,
|
|
"no-unused-expression": true,
|
|
"no-var-keyword": true,
|
|
"member-access": [true, "no-public"],
|
|
"no-debugger": true,
|
|
"one-line": [
|
|
true,
|
|
"check-catch",
|
|
"check-else",
|
|
"check-open-brace",
|
|
"check-whitespace"
|
|
],
|
|
"quotemark": [
|
|
true,
|
|
"single",
|
|
"avoid-escape"
|
|
],
|
|
"semicolon": true,
|
|
"typedef-whitespace": [
|
|
true,
|
|
{
|
|
"call-signature": "nospace",
|
|
"index-signature": "nospace",
|
|
"parameter": "nospace",
|
|
"property-declaration": "nospace",
|
|
"variable-declaration": "nospace"
|
|
}
|
|
],
|
|
"curly": true,
|
|
"variable-name": [
|
|
true,
|
|
"ban-keywords",
|
|
"check-format",
|
|
"allow-leading-underscore"
|
|
],
|
|
"whitespace": [
|
|
true,
|
|
"check-branch",
|
|
"check-decl",
|
|
"check-operator",
|
|
"check-separator",
|
|
"check-type",
|
|
"check-preblock"
|
|
],
|
|
// Bans jasmine helper functions that will prevent the CI from properly running tests.
|
|
"ban": [
|
|
true,
|
|
["fit"],
|
|
["fdescribe"],
|
|
["xit"],
|
|
["xdescribe"],
|
|
{"name": "Object.assign", "message": "Use the spread operator instead."}
|
|
],
|
|
// Avoids inconsistent linebreak styles in source files. Forces developers to use LF linebreaks.
|
|
"linebreak-style": [true, "LF"],
|
|
// Namespaces are no allowed, because of Closure compiler.
|
|
"no-namespace": true,
|
|
"jsdoc-format": [true, "check-multiline-start"],
|
|
"no-duplicate-imports": true,
|
|
|
|
// Codelyzer
|
|
"template-banana-in-box": true,
|
|
"contextual-lifecycle": true,
|
|
"contextual-decorator": true,
|
|
"no-output-on-prefix": true,
|
|
"template-no-negated-async": true,
|
|
"use-lifecycle-interface": true,
|
|
|
|
// Custom Rules
|
|
"ts-loader": true,
|
|
"no-exposed-todo": true,
|
|
"no-import-spacing": true,
|
|
"no-private-getters": true,
|
|
"no-undecorated-base-class-di": true,
|
|
"setters-after-getters": true,
|
|
"ng-on-changes-property-access": true,
|
|
"rxjs-imports": true,
|
|
"require-breaking-change-version": true,
|
|
"static-query": true,
|
|
"no-host-decorator-in-concrete": [
|
|
true,
|
|
"HostBinding",
|
|
"HostListener"
|
|
],
|
|
"member-naming": [true, {
|
|
"private": "^_"
|
|
}],
|
|
"validate-decorators": [true, {
|
|
"Component": {
|
|
"!host": "\\[class\\]",
|
|
"!preserveWhitespaces": ".*",
|
|
"!styles": ".*",
|
|
"changeDetection": "\\.OnPush$",
|
|
"encapsulation": "\\.None$",
|
|
"moduleId": "^module\\.id$"
|
|
},
|
|
"Directive": {
|
|
"!host": "\\[class\\]"
|
|
},
|
|
"NgModule": "^(?!\\s*$).+"
|
|
}, "src/+(material|cdk|material-experimental|cdk-experimental)/**/!(*.spec).ts"],
|
|
"require-license-banner": [
|
|
true,
|
|
"src/+(material|cdk|material-experimental|cdk-experimental|dev-app)/**/!(*.spec).ts"
|
|
],
|
|
"missing-rollup-globals": [
|
|
true,
|
|
"./tools/package-tools/rollup-globals.ts",
|
|
"src/+(material|cdk|material-examples|material-experimental|cdk-experimental)/!(schematics)**/*.ts"
|
|
],
|
|
"file-name-casing": [true, {
|
|
// Exclude custom lint rule files since they have to always be camel-cased and end
|
|
// with "Rule".
|
|
".*Rule.ts": "camel-case",
|
|
".*": "kebab-case"
|
|
}],
|
|
"no-unescaped-html-tag": true
|
|
},
|
|
"linterOptions": {
|
|
"exclude": [
|
|
// Exclude the API golden files
|
|
"tools/public_api_guard/**/*.d.ts",
|
|
// Exclude schematic template files and test cases that can't be linted.
|
|
"src/material/schematics/ng-generate/*/files/**/*",
|
|
"src/cdk/schematics/ng-generate/*/files/**/*",
|
|
"src/cdk/schematics/ng-update/test-cases/**/*",
|
|
"src/material/schematics/ng-update/test-cases/**/*"
|
|
]
|
|
}
|
|
}
|