vis-network
Version:
A dynamic, browser-based visualization library.
107 lines (95 loc) • 3.25 kB
JavaScript
module.exports = {
env: {
browser: true,
es6: true,
node: true,
mocha: true
},
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: "module",
ecmaVersion: 2019,
project: 'tsconfig.json',
},
plugins: ['prettier', '@typescript-eslint'],
extends: ['eslint:recommended', 'prettier'],
// For the full list of rules, see: http://eslint.org/docs/rules/
rules: {
'prettier/prettier': ['off'],
complexity: [2, 55],
"max-statements": [2, 115],
"no-unreachable": 1,
"no-useless-escape": 0,
"no-console": 0,
// To flag presence of console.log without breaking linting:
//"no-console": ["warn", { allow: ["warn", "error"] }],
"require-jsdoc": ["error", {
require: {
FunctionDeclaration: true,
MethodDefinition: true,
ClassDeclaration: true,
ArrowFunctionExpression: false
}
}],
"valid-jsdoc": [2, {
requireReturnDescription: false,
requireReturn: false,
requireParamDescription: false,
requireReturnType: true
}],
"guard-for-in": 1,
},
overrides: [
{
files: ['**/*.ts', '**/*.d.ts'],
rules: {
'prettier/prettier': ['error'],
// @TODO: Seems to mostly work just fine but I'm not 100 % sure.
// @TODO: Deprecated, anything like this for tsdoc?
'valid-jsdoc': [
'error',
{
prefer: {
arg: 'param',
argument: 'param',
return: 'returns',
},
requireParamDescription: true,
requireParamType: false,
requireReturn: false, // Requires return for void functions.
requireReturnDescription: true,
requireReturnType: false,
},
],
// Class related.
'@typescript-eslint/member-naming': [
'error',
{ private: '^_', protected: '^_', public: '^[^_]' },
],
'@typescript-eslint/member-ordering': 'error',
'@typescript-eslint/no-parameter-properties': 'off',
'@typescript-eslint/no-useless-constructor': 'error',
'@typescript-eslint/prefer-readonly': 'error',
// Other.
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
'@typescript-eslint/prefer-includes': 'error',
'@typescript-eslint/prefer-regexp-exec': 'error',
// @TODO: Seems like a good thing, not yet on npm though.
// '@typescript-eslint/require-await': 'error',
// These are hoisted, I have no idea why it reports them by default.
'@typescript-eslint/no-use-before-define': [
'error',
{ functions: false, classes: false, typedefs: false },
],
// False positives for overloading, also tsc compiles with errors anyway.
'no-dupe-class-members': 'off',
// Blocks typesafe exhaustive switch (switch (x) { … default: const never: never = x }).
'no-case-declarations': 'off',
// Reports used types.
'no-unused-vars': 'off',
// Reports typeof bigint as an error, tsc validates this anyway so no problem turning this off.
'valid-typeof': 'off',
},
},
],
}