Read-only mirror — the public repositories of the Forgejo instance, refreshed every 10 minutes. The live instance (fg.dieschoenewolke.de) is reachable only over the VPN; clone here with https://git.dieschoenewolke.de/git/<owner>/<repo>.git.
summaryrefslogtreecommitdiff
path: root/eslint.config.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'eslint.config.mjs')
-rw-r--r--eslint.config.mjs62
1 files changed, 62 insertions, 0 deletions
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000..650b994
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,62 @@
+import github from 'eslint-plugin-github'
+import jest from 'eslint-plugin-jest'
+
+const githubConfigs = github.getFlatConfigs()
+
+export default [
+ {
+ ignores: ['**/node_modules/**', '**/lib/**', '**/dist/**']
+ },
+ githubConfigs.recommended,
+ ...githubConfigs.typescript,
+ {
+ files: ['**/*.ts'],
+ languageOptions: {
+ parserOptions: {
+ project: './tsconfig.json'
+ }
+ },
+ rules: {
+ 'eslint-comments/no-use': 'off',
+ 'import/no-namespace': 'off',
+ 'no-unused-vars': 'off',
+ '@typescript-eslint/no-unused-vars': 'error',
+ '@typescript-eslint/explicit-member-accessibility': [
+ 'error',
+ {accessibility: 'no-public'}
+ ],
+ '@typescript-eslint/no-require-imports': 'error',
+ '@typescript-eslint/array-type': 'error',
+ '@typescript-eslint/await-thenable': 'error',
+ camelcase: 'off',
+ '@typescript-eslint/explicit-function-return-type': [
+ 'error',
+ {allowExpressions: true}
+ ],
+ '@typescript-eslint/no-array-constructor': 'error',
+ '@typescript-eslint/no-explicit-any': 'error',
+ '@typescript-eslint/no-extraneous-class': 'error',
+ '@typescript-eslint/no-floating-promises': 'error',
+ '@typescript-eslint/no-for-in-array': 'error',
+ '@typescript-eslint/no-inferrable-types': 'error',
+ '@typescript-eslint/no-misused-new': 'error',
+ '@typescript-eslint/no-namespace': 'error',
+ '@typescript-eslint/no-non-null-assertion': 'warn',
+ '@typescript-eslint/no-unnecessary-qualifier': 'error',
+ '@typescript-eslint/no-unnecessary-type-assertion': 'error',
+ '@typescript-eslint/no-useless-constructor': 'error',
+ '@typescript-eslint/prefer-for-of': 'warn',
+ '@typescript-eslint/prefer-function-type': 'warn',
+ '@typescript-eslint/prefer-includes': 'error',
+ '@typescript-eslint/prefer-string-starts-ends-with': 'error',
+ '@typescript-eslint/promise-function-async': 'error',
+ '@typescript-eslint/require-array-sort-compare': 'error',
+ '@typescript-eslint/restrict-plus-operands': 'error',
+ '@typescript-eslint/unbound-method': 'error'
+ }
+ },
+ {
+ files: ['__test__/**/*.ts'],
+ ...jest.configs['flat/recommended']
+ }
+]