36 lines
1.0 KiB
JavaScript
36 lines
1.0 KiB
JavaScript
/** @type {import('eslint').Linter.Config} */
|
|
module.exports = {
|
|
extends: [
|
|
'next/core-web-vitals',
|
|
'plugin:@typescript-eslint/strict-type-checked',
|
|
'plugin:@typescript-eslint/stylistic-type-checked',
|
|
'prettier',
|
|
],
|
|
plugins: ['@typescript-eslint', 'prettier'],
|
|
parser: '@typescript-eslint/parser',
|
|
root: true,
|
|
parserOptions: {
|
|
project: true,
|
|
tsconfigRootDir: __dirname,
|
|
},
|
|
rules: {
|
|
"prettier/prettier": "error",
|
|
"@typescript-eslint/no-non-null-assertion": "off",
|
|
"@typescript-eslint/consistent-type-definitions": "off",
|
|
"@typescript-eslint/no-unused-vars": "off", // handled by typescript
|
|
"react-hooks/exhaustive-deps": 'off',
|
|
"@typescript-eslint/no-empty-function": "off",
|
|
"@next/next/no-img-element": "off",
|
|
|
|
// TODO: enable later
|
|
"@typescript-eslint/prefer-nullish-coalescing": "off",
|
|
"@typescript-eslint/no-floating-promises": "off",
|
|
"@typescript-eslint/no-misused-promises": [
|
|
"error",
|
|
{
|
|
"checksVoidReturn": false,
|
|
}
|
|
],
|
|
},
|
|
};
|