2023-12-28 11:05:09 +08:00
|
|
|
module.exports = {
|
|
|
|
root: true,
|
|
|
|
env: {
|
|
|
|
browser: true,
|
|
|
|
es2021: true,
|
|
|
|
node: true,
|
|
|
|
commonjs: true,
|
|
|
|
jest: true,
|
|
|
|
},
|
|
|
|
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:jsdoc/recommended-error'],
|
|
|
|
overrides: [
|
|
|
|
{
|
|
|
|
env: {
|
|
|
|
node: true,
|
|
|
|
},
|
|
|
|
files: ['.eslintrc.{js,cjs}'],
|
|
|
|
parserOptions: {
|
|
|
|
sourceType: 'script',
|
|
|
|
},
|
|
|
|
},
|
2024-01-26 10:59:52 +08:00
|
|
|
{
|
|
|
|
files: ['**/__tests__/**'],
|
|
|
|
rules: {
|
|
|
|
'jsdoc/require-jsdoc': 0,
|
|
|
|
},
|
|
|
|
},
|
2024-03-14 19:42:30 +08:00
|
|
|
{
|
|
|
|
files: ['**/demo-to-test/**'],
|
|
|
|
rules: {
|
|
|
|
'@typescript-eslint/no-var-requires': 'off',
|
|
|
|
},
|
|
|
|
},
|
2023-12-28 11:05:09 +08:00
|
|
|
],
|
|
|
|
parser: '@typescript-eslint/parser',
|
|
|
|
parserOptions: {
|
|
|
|
ecmaVersion: 'latest',
|
|
|
|
sourceType: 'module',
|
|
|
|
},
|
|
|
|
plugins: ['@typescript-eslint', 'jsdoc'],
|
|
|
|
rules: {
|
|
|
|
// indent: ['error', 2, { SwitchCase: 1 }],
|
|
|
|
'linebreak-style': ['error', 'unix'],
|
|
|
|
quotes: ['error', 'single', { allowTemplateLiterals: true, avoidEscape: true }],
|
|
|
|
semi: ['error', 'always'],
|
2024-01-26 15:58:55 +08:00
|
|
|
'@typescript-eslint/no-unused-vars': ['warn', { ignoreRestSiblings: true }],
|
2023-12-28 11:05:09 +08:00
|
|
|
'jsdoc/require-param-type': 0,
|
|
|
|
'@typescript-eslint/no-this-alias': 'off',
|
|
|
|
|
|
|
|
// TODO: rules below will be set to 2 in the future
|
|
|
|
'jsdoc/require-jsdoc': 1,
|
|
|
|
'jsdoc/check-access': 1,
|
2024-04-24 15:33:33 +08:00
|
|
|
/**
|
|
|
|
* js plugin rules
|
|
|
|
*/
|
|
|
|
'jsdoc/check-tag-names': [
|
|
|
|
'error',
|
|
|
|
{
|
|
|
|
// Allow TSDoc tags @remarks, @defaultValue
|
|
|
|
// Custom tags: @apiCategory for Graph API
|
|
|
|
definedTags: ['remarks', 'defaultValue', 'apiCategory'],
|
|
|
|
},
|
|
|
|
],
|
2023-12-28 11:05:09 +08:00
|
|
|
'jsdoc/require-description': 1,
|
|
|
|
'jsdoc/require-param': 1,
|
|
|
|
'jsdoc/check-param-names': 1,
|
|
|
|
'jsdoc/require-param-description': 1,
|
|
|
|
'jsdoc/require-returns': 1,
|
|
|
|
'jsdoc/require-returns-type': 0,
|
|
|
|
'jsdoc/require-returns-description': 1,
|
|
|
|
|
|
|
|
// TODO: rules below are not recommended, and will be removed in the future
|
|
|
|
'@typescript-eslint/no-explicit-any': 1,
|
|
|
|
'@typescript-eslint/ban-types': 1,
|
|
|
|
'@typescript-eslint/ban-ts-comment': 1,
|
|
|
|
},
|
|
|
|
};
|