* Use esm for ts-node * Add esm flag * Change tsconfig properties * Use tsx rather than ts-node * Use tsx * Remove ts-node
239 lines
7.1 KiB
YAML
239 lines
7.1 KiB
YAML
extends: eslint:recommended
|
|
env:
|
|
browser: true
|
|
es6: true
|
|
node: true
|
|
parser: "@typescript-eslint/parser"
|
|
parserOptions:
|
|
project:
|
|
- tsconfig.json
|
|
sourceType: module
|
|
plugins:
|
|
- eslint-plugin-import
|
|
- eslint-plugin-no-null
|
|
- eslint-plugin-unicorn
|
|
- eslint-plugin-jsdoc
|
|
- eslint-plugin-prefer-arrow
|
|
- "@typescript-eslint"
|
|
- eslint-plugin-functional
|
|
root: true
|
|
rules:
|
|
no-undef: "off"
|
|
no-extra-boolean-cast: "off"
|
|
no-alert: error
|
|
no-self-compare: error
|
|
no-unreachable-loop: error
|
|
no-template-curly-in-string: error
|
|
no-unused-private-class-members: error
|
|
no-extend-native: error
|
|
no-floating-decimal: error
|
|
no-implied-eval: error
|
|
no-iterator: error
|
|
no-lone-blocks: error
|
|
no-loop-func: error
|
|
no-new-object: error
|
|
no-proto: error
|
|
no-useless-catch: error
|
|
one-var-declaration-per-line: error
|
|
prefer-arrow-callback: error
|
|
prefer-destructuring: error
|
|
prefer-exponentiation-operator: error
|
|
prefer-promise-reject-errors: error
|
|
prefer-regex-literals: error
|
|
prefer-spread: error
|
|
prefer-template: error
|
|
require-await: error
|
|
"@typescript-eslint/adjacent-overload-signatures": error
|
|
"@typescript-eslint/array-type":
|
|
- error
|
|
- default: array
|
|
"@typescript-eslint/ban-types":
|
|
- error
|
|
- types:
|
|
Object:
|
|
message: Avoid using the `Object` type. Did you mean `object`?
|
|
Function:
|
|
message: >-
|
|
Avoid using the `Function` type. Prefer a specific function type,
|
|
like `() => void`.
|
|
Boolean:
|
|
message: Avoid using the `Boolean` type. Did you mean `boolean`?
|
|
Number:
|
|
message: Avoid using the `Number` type. Did you mean `number`?
|
|
String:
|
|
message: Avoid using the `String` type. Did you mean `string`?
|
|
Symbol:
|
|
message: Avoid using the `Symbol` type. Did you mean `symbol`?
|
|
"@typescript-eslint/consistent-type-assertions": error
|
|
"@typescript-eslint/dot-notation": error
|
|
"@typescript-eslint/explicit-function-return-type":
|
|
- error
|
|
- allowExpressions: true
|
|
allowTypedFunctionExpressions: true
|
|
allowHigherOrderFunctions: false
|
|
allowDirectConstAssertionInArrowFunctions: true
|
|
allowConciseArrowFunctionExpressionsStartingWithVoid: true
|
|
"@typescript-eslint/explicit-member-accessibility":
|
|
- error
|
|
- accessibility: explicit
|
|
overrides:
|
|
accessors: explicit
|
|
"@typescript-eslint/explicit-module-boundary-types":
|
|
- error
|
|
- allowArgumentsExplicitlyTypedAsAny: true
|
|
allowDirectConstAssertionInArrowFunctions: true
|
|
allowHigherOrderFunctions: false
|
|
allowTypedFunctionExpressions: false
|
|
"@typescript-eslint/naming-convention":
|
|
- error
|
|
- selector:
|
|
- objectLiteralProperty
|
|
leadingUnderscore: allow
|
|
format:
|
|
- camelCase
|
|
- PascalCase
|
|
filter:
|
|
regex: (^[a-z]+:.+)|_attr|[0-9]
|
|
match: false
|
|
"@typescript-eslint/no-empty-function": error
|
|
"@typescript-eslint/no-empty-interface": error
|
|
"@typescript-eslint/no-explicit-any": error
|
|
"@typescript-eslint/no-misused-new": error
|
|
"@typescript-eslint/no-namespace": error
|
|
"@typescript-eslint/no-parameter-properties": "off"
|
|
"@typescript-eslint/no-require-imports": error
|
|
"@typescript-eslint/no-shadow":
|
|
- error
|
|
- hoist: all
|
|
"@typescript-eslint/no-this-alias": error
|
|
"@typescript-eslint/no-unused-expressions": error
|
|
"@typescript-eslint/no-use-before-define": "off"
|
|
"@typescript-eslint/no-var-requires": error
|
|
"@typescript-eslint/prefer-for-of": error
|
|
"@typescript-eslint/prefer-function-type": error
|
|
"@typescript-eslint/prefer-namespace-keyword": error
|
|
"@typescript-eslint/prefer-readonly": error
|
|
"@typescript-eslint/triple-slash-reference":
|
|
- error
|
|
- path: always
|
|
types: prefer-import
|
|
lib: always
|
|
"@typescript-eslint/typedef":
|
|
- error
|
|
- parameter: true
|
|
propertyDeclaration: true
|
|
"@typescript-eslint/unified-signatures": error
|
|
arrow-body-style: error
|
|
complexity: "off"
|
|
consistent-return: error
|
|
constructor-super: error
|
|
curly: error
|
|
dot-notation: "off"
|
|
eqeqeq:
|
|
- error
|
|
- smart
|
|
guard-for-in: error
|
|
id-denylist:
|
|
- error
|
|
- any
|
|
- Number
|
|
- number
|
|
- String
|
|
- string
|
|
- Boolean
|
|
- boolean
|
|
- Undefined
|
|
- undefined
|
|
id-match: error
|
|
import/no-default-export: error
|
|
import/no-extraneous-dependencies: "off"
|
|
import/no-internal-modules: "off"
|
|
import/order: error
|
|
indent: "off"
|
|
jsdoc/check-alignment: error
|
|
jsdoc/check-indentation: "off"
|
|
max-classes-per-file: "off"
|
|
max-len: "off"
|
|
new-parens: error
|
|
no-bitwise: error
|
|
no-caller: error
|
|
no-cond-assign: error
|
|
no-console: error
|
|
no-debugger: error
|
|
no-duplicate-case: error
|
|
no-duplicate-imports: error
|
|
no-empty: error
|
|
no-empty-function: "off"
|
|
no-eval: error
|
|
no-extra-bind: error
|
|
no-fallthrough: "off"
|
|
no-invalid-this: "off"
|
|
no-multiple-empty-lines: error
|
|
no-new-func: error
|
|
no-new-wrappers: error
|
|
no-null/no-null: error
|
|
no-param-reassign: error
|
|
no-redeclare: error
|
|
no-return-await: error
|
|
no-sequences: error
|
|
no-shadow: "off"
|
|
no-sparse-arrays: error
|
|
no-throw-literal: error
|
|
no-trailing-spaces: error
|
|
no-undef-init: error
|
|
no-underscore-dangle:
|
|
- error
|
|
- allow:
|
|
- _attr
|
|
no-unsafe-finally: error
|
|
no-unused-expressions: "off"
|
|
no-unused-labels: error
|
|
no-use-before-define: "off"
|
|
no-useless-constructor: error
|
|
no-var: error
|
|
object-shorthand: "off"
|
|
one-var:
|
|
- error
|
|
- never
|
|
prefer-arrow/prefer-arrow-functions: error
|
|
prefer-const: error
|
|
prefer-object-spread: error
|
|
radix: error
|
|
space-in-parens:
|
|
- error
|
|
- never
|
|
spaced-comment:
|
|
- error
|
|
- always
|
|
- markers:
|
|
- /
|
|
unicorn/filename-case: error
|
|
unicorn/prefer-ternary: error
|
|
use-isnan: error
|
|
valid-typeof: "off"
|
|
functional/immutable-data:
|
|
- error
|
|
- assumeTypes: true
|
|
ignoreImmediateMutation: true
|
|
ignoreAccessorPattern:
|
|
- "**.root*"
|
|
- "**.numberingReferences*"
|
|
- "**.sections*"
|
|
- "**.properties*"
|
|
functional/prefer-property-signatures: error
|
|
functional/no-mixed-types: error
|
|
functional/prefer-readonly-type: error
|
|
no-unused-vars:
|
|
- error
|
|
- argsIgnorePattern: ^[_]+$
|
|
ignorePatterns:
|
|
- vite.config.ts
|
|
overrides:
|
|
- files:
|
|
- "*.spec.ts"
|
|
rules:
|
|
"@typescript-eslint/no-unused-expressions": "off"
|
|
"@typescript-eslint/dot-notation": "off"
|
|
prefer-destructuring: "off"
|
|
"@typescript-eslint/explicit-function-return-type": "off"
|