tutanota/eslint.config.mjs
hec d23760c3d3
Create crypto primitive crate
- export ed25519 primitives and its binding to wasm
- export randomizer facade
- export compatibility tests for test only

Co-authored-by: vaf-hub <67682728+vaf-hub@users.noreply.github.com>

tuta#2097
2025-08-07 09:51:21 +02:00

124 lines
3.3 KiB
JavaScript

import typescriptEslint from "typescript-eslint"
import unicorn from "eslint-plugin-unicorn"
import globals from "globals"
import { defineConfig, globalIgnores } from "eslint/config"
export default defineConfig([
{
rules: {
"for-direction": "error",
"no-async-promise-executor": "error",
"no-compare-neg-zero": "warn",
"no-cond-assign": "error",
"no-constant-binary-expression": "warn",
"no-debugger": "error",
"no-dupe-else-if": "warn",
"no-duplicate-case": "error",
"no-empty-character-class": "warn",
"no-empty-pattern": "warn",
"no-ex-assign": "warn",
"no-fallthrough": "error",
"no-invalid-regexp": "error",
"no-irregular-whitespace": "error",
"no-loss-of-precision": "error",
"no-misleading-character-class": "warn",
"no-prototype-builtins": "error",
"no-self-assign": "error",
"no-self-compare": "error",
"no-setter-return": "error",
"no-sparse-arrays": "error",
"no-unexpected-multiline": "error",
"no-unreachable": "error",
"no-unsafe-finally": "error",
"no-unsafe-negation": "error",
"no-unused-private-class-members": "warn",
"no-useless-backreference": "warn",
"use-isnan": "error",
"valid-typeof": "error",
eqeqeq: ["error", "always", { null: "ignore" }],
"no-case-declarations": "error",
"no-delete-var": "error",
"no-empty": "warn",
"no-empty-static-block": "error",
"no-eval": "error",
"no-global-assign": "error",
"no-implied-eval": "error",
"no-nonoctal-decimal-escape": "error",
"no-octal": "error",
"no-octal-escape": "error",
"no-proto": "error",
"no-regex-spaces": "error",
"no-shadow-restricted-names": "error",
"no-unused-labels": "warn",
"no-useless-catch": "warn",
"no-useless-escape": "error",
"no-var": "error",
"no-with": "error",
"require-yield": "error",
},
},
...typescriptEslint.configs.recommended,
{
rules: {
"no-control-regex": 0,
"@typescript-eslint/no-non-null-asserted-optional-chain": 0,
"@typescript-eslint/no-this-alias": 0,
// "no-empty-pattern": 0,
"prefer-rest-params": 2,
"prefer-spread": 0,
"prefer-const": 0,
// does not take into account declared globals, not useful with ts
// enable it separately
"@typescript-eslint/no-empty-function": 0,
"@typescript-eslint/no-non-null-assertion": 0,
"@typescript-eslint/ban-ts-comment": 0,
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-unused-vars": 0,
"@typescript-eslint/no-inferrable-types": 0,
"unicorn/prefer-node-protocol": 2,
"unicorn/no-array-for-each": 2,
"unicorn/prefer-array-some": 2,
},
plugins: {
unicorn,
},
languageOptions: {
globals: {
...globals.browser,
...globals.node,
},
ecmaVersion: 2022,
sourceType: "module",
},
},
[
globalIgnores([
"buildSrc/",
".github/",
".rollup.cache/",
".run",
"app-android/",
"app-ios/",
"artifacts/",
"cache/",
"ci/",
"doc",
"fdroid-metadata-workaround/",
"githooks/",
"native-cache/",
"packages/node-mimimi/",
"packages/tutanota-crypto/lib/internal/",
"packages/tutanota-crypto/lib/encryption/ed25519wasm/",
"resources/",
"schemas/",
"tuta-sdk/",
"**/entities/",
"**/translations/",
"**/node_modules/",
"**/build/",
"**/build-calendar-app/",
"**/dist/",
"**/libs/",
]),
],
])