build: compile as esm (#888)

This commit is contained in:
Michael Kriese 2024-11-08 16:32:08 +01:00 committed by GitHub
parent 4a407be28a
commit e8fc25c747
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 14 additions and 7 deletions

64
eslint.config.js Normal file
View file

@ -0,0 +1,64 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-argument */
import eslintConfigPrettier from 'eslint-config-prettier';
import globals from 'globals';
import js from '@eslint/js';
import json from 'eslint-plugin-json';
import tseslint from 'typescript-eslint';
export default tseslint.config(
{
ignores: [
'**/.git/',
'**/.vscode',
'**/build/',
'**/dist/',
'**/coverage/',
'**/LICENSE.md',
'**/modules/',
'**/node_modules/',
'!**/.*',
],
},
js.configs.recommended,
...tseslint.configs.recommendedTypeChecked.map((config) => ({
...config,
files: ['**/*.{ts,js,mjs,cjs}'],
})),
...tseslint.configs.stylisticTypeChecked.map((config) => ({
...config,
files: ['**/*.{ts,js,mjs,cjs}'],
})),
{
files: ['**/*.{ts,js,mjs,cjs}'],
linterOptions: {
reportUnusedDisableDirectives: true,
},
languageOptions: {
globals: {
...globals.node,
},
ecmaVersion: 'latest',
sourceType: 'module',
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
'sort-imports': 'error',
},
},
json.configs.recommended,
{
files: ['**/tsconfig.json', '**/tsconfig.*.json'],
rules: {
'json/*': ['error', { allowComments: true }],
},
},
eslintConfigPrettier,
);