import eslintPluginLit from '../../../../third_party/node/node_modules/eslint-plugin-lit/lib/index.js';
import typescriptEslint from '../../../../third_party/node/node_modules/@typescript-eslint/eslint-plugin/dist/index.js';
import tsParser from '../../../../third_party/node/node_modules/@typescript-eslint/parser/dist/index.js';
import webUiEslint from './webui_eslint_plugin.js';
export const defaultConfig = [
{
languageOptions: {
ecmaVersion: 2020,
sourceType: 'module',
parser: tsParser,
parserOptions: {
disallowAutomaticSingleRunInference: true,
},
},
plugins: {
'@typescript-eslint': typescriptEslint,
'@webui-eslint': webUiEslint,
},
files: ['**/*.ts'],
rules: {
'require-await': 'off',
'@typescript-eslint/require-await' : 'error',
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
'@webui-eslint/lit-property-accessor': 'error',
'@webui-eslint/polymer-property-declare': 'error',
'@webui-eslint/polymer-property-class-member': 'error',
},
},
{
files: ['**/*.html.ts'],
plugins: {
'eslint-plugin-lit': eslintPluginLit,
},
rules: {
'eslint-plugin-lit/binding-positions': 'error',
'eslint-plugin-lit/no-duplicate-template-bindings': 'error',
'eslint-plugin-lit/no-invalid-escape-sequences': 'error',
'eslint-plugin-lit/no-invalid-html': 'error',
'eslint-plugin-lit/no-private-properties': ['error', {'private': '_$'}],
},
},
];
export const webComponentMissingDepsConfig = {
files: ['**/*.html.ts'],
plugins: {
'eslint-plugin-lit': eslintPluginLit,
},
rules: {
'@webui-eslint/web-component-missing-deps': 'error',
},
};