UNPKG

@geekbears/gb-class-validators

Version:

Geekbears custom validators using class-validator package.

181 lines (155 loc) 5.37 kB
import typescriptEslint from "@typescript-eslint/eslint-plugin"; import globals from "globals"; import tsParser from "@typescript-eslint/parser"; import path from "node:path"; import { fileURLToPath } from "node:url"; import js from "@eslint/js"; import { FlatCompat } from "@eslint/eslintrc"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, recommendedConfig: js.configs.recommended, allConfig: js.configs.all }); export default [...compat.extends( "prettier", ), { plugins: { "@typescript-eslint": typescriptEslint, }, languageOptions: { globals: { ...globals.node, }, parser: tsParser, ecmaVersion: 5, sourceType: "module", parserOptions: { project: "tsconfig.json", }, }, rules: { "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/array-type": ["error", { default: "array", }], "@typescript-eslint/consistent-type-assertions": "error", "@typescript-eslint/dot-notation": "error", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/indent": "off", "@typescript-eslint/member-delimiter-style": ["off", { multiline: { delimiter: "none", requireLast: true, }, singleline: { delimiter: "semi", requireLast: false, }, }], "@typescript-eslint/naming-convention": ["error", { selector: "variable", format: ["camelCase", "UPPER_CASE", "PascalCase"], leadingUnderscore: "allow", trailingUnderscore: "forbid", }], "@typescript-eslint/no-empty-function": "error", "@typescript-eslint/no-empty-interface": "error", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-misused-new": "error", "@typescript-eslint/no-namespace": "error", "@typescript-eslint/no-parameter-properties": "off", "@typescript-eslint/no-shadow": ["error", { hoist: "all", }], "@typescript-eslint/no-unused-expressions": "error", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/no-var-requires": "error", "@typescript-eslint/prefer-for-of": "error", "@typescript-eslint/prefer-function-type": "error", "@typescript-eslint/prefer-namespace-keyword": "error", "@typescript-eslint/quotes": "off", "@typescript-eslint/semi": ["off", null], "@typescript-eslint/triple-slash-reference": ["error", { path: "always", types: "prefer-import", lib: "always", }], "@typescript-eslint/type-annotation-spacing": "off", "@typescript-eslint/typedef": "off", "@typescript-eslint/unified-signatures": "error", "arrow-parens": ["off", "always"], "brace-style": ["off", "off"], "comma-dangle": "off", complexity: "off", "constructor-super": "error", "dot-notation": "off", "eol-last": "off", eqeqeq: ["error", "smart"], "guard-for-in": "error", "id-denylist": [ "error", "any", "Number", "number", "String", "string", "Boolean", "boolean", "Undefined", "undefined", ], "id-match": "error", indent: "off", "linebreak-style": "off", "max-classes-per-file": ["error", 1], "max-len": "off", "new-parens": "off", "newline-per-chained-call": "off", "no-bitwise": "error", "no-caller": "error", "no-cond-assign": "error", "no-console": "error", "no-debugger": "error", "no-empty": "error", "no-empty-function": "off", "no-eval": "error", "no-extra-semi": "off", "no-fallthrough": "off", "no-invalid-this": "off", "no-irregular-whitespace": "off", "no-multiple-empty-lines": "off", "no-new-wrappers": "error", "no-shadow": "off", "no-throw-literal": "error", "no-trailing-spaces": "off", "no-undef-init": "error", "no-underscore-dangle": "off", "no-unsafe-finally": "error", "no-unused-expressions": "off", "no-unused-labels": "error", "no-use-before-define": "off", "no-var": "error", "object-shorthand": "error", "one-var": ["error", "never"], "padded-blocks": ["off", { blocks: "never", }, { allowSingleLineBlocks: true, }], "prefer-const": "error", "quote-props": "off", quotes: "off", radix: "error", semi: "off", "space-before-function-paren": "off", "space-in-parens": ["off", "never"], "spaced-comment": ["error", "always", { markers: ["/"], }], "use-isnan": "error", "valid-typeof": "off", }, }];