@bentley/build-tools
Version:
Bentley build tools
170 lines • 4.25 kB
JSON
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended",
"tslint-etc"
],
"jsRules": {},
"rules": {
"await-promise": [
true,
"PromisedAssertion"
],
"ban": [
true,
{
"name": [
"Math",
"hypot"
],
"message": "Use Geometry.hypotenuse methods instead"
}
],
"no-return-await": true,
"promise-function-async": true,
"no-floating-promises": true,
// Standard Rules ======================================================
"max-line-length": [
false
],
"curly": [
false,
"ignore-same-line"
],
"max-classes-per-file": false,
"ordered-imports": [
true,
{
"import-sources-order": "any",
"named-imports-order": "case-insensitive"
}
],
"interface-name": [
false
],
"no-consecutive-blank-lines": true,
// NOTE: This does not enforce that the correct number of spaces are used. See ter-indent.
"indent": [
true,
"spaces",
2
],
"space-before-function-paren": [
true,
{
"anonymous": "always",
"named": "never",
"asyncArrow": "always"
}
],
"variable-name": [
true,
"ban-keywords",
"check-format",
"allow-leading-underscore"
],
"align": [
true,
"statements"
],
"object-literal-sort-keys": false,
"no-bitwise": false,
"no-unused-expression": false,
"no-unused-variable": true,
"no-namespace": false,
"one-variable-per-declaration": false,
"no-empty": false,
"no-switch-case-fall-through": true,
"no-conditional-assignment": false,
"no-duplicate-imports": true,
"member-ordering": [
false
],
// Naming Rules ======================================================
"naming-convention": [
true,
// allow leading and trailing underscores on everything. Will override for exceptions below.
{
"type": "default",
"leadingUnderscore": "allow",
"trailingUnderscore": "allow"
},
// forbid leading underscores on exported types
{
"type": "type",
"modifiers": "export",
"leadingUnderscore": "forbid"
},
// forbid leading underscores on public methods
{
"type": "method",
"modifiers": "public",
"leadingUnderscore": "forbid"
},
// forbid leading underscores on public properties
{
"type": "property",
"modifiers": "public",
"leadingUnderscore": "forbid"
},
// allow leading underscores on enum members
{
"type": "enumMember",
"leadingUnderscore": "allow"
},
// require leading underscores on private properties
{
"type": "property",
"modifiers": "private",
"leadingUnderscore": "require"
},
// require leading underscores on protected properties
{
"type": "property",
"modifiers": "protected",
"leadingUnderscore": "require"
},
// require camelCase on all methods
{
"type": "method",
"format": "camelCase"
}
],
// Rules from tslint-etc ===============================================
"no-const-enum": {
"options": [
{
"allowLocal": true
}
],
"severity": "error"
},
// Rules from tslint-eslint-rules ======================================
// tslint's indent rule only enforces/fixes tabs vs spaces, not number of spaces.
"ter-indent": [
true,
2,
{
"SwitchCase": 1
}
],
// Custom rules ========================================================
"prefer-get": true,
"no-direct-imports": true,
"import-within-package": true,
"require-basic-rpc-values": true,
"deprecation": {
"severity": "error"
},
"tslint-react-set-state-usage": [
true,
"allow-object"
]
},
"rulesDirectory": [
"./tslint-rules/tslint-consistent-codestyle/rules",
"./tslint-rules/tslint-react-set-state-usage/src/rules",
"./tslint-rules/tslint-eslint-rules/dist/rules",
"./tslint-rules"
]
}