diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 08750d892..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,169 +0,0 @@ -{ - "env": { - "jest": true - }, - "extends": [ - "eslint:recommended", - "standard", - "plugin:import/recommended", - "plugin:promise/recommended", - "prettier" - ], - "overrides": [ - { - "extends": [ - "plugin:@typescript-eslint/recommended", - "plugin:@typescript-eslint/recommended-type-checked", - "plugin:import/typescript" - ], - "files": ["*.ts"], - "parserOptions": { - "project": [ - "./tsconfig.json", - "./tests/ts/tsconfig.json", - "./tests/ts-nodenext/tsconfig.json" - ], - "sourceType": "module", - "tsconfigRootDir": "." - }, - "rules": { - "@typescript-eslint/array-type": [ - "error", - { - "default": "array" - } - ], - "@typescript-eslint/ban-ts-comment": [ - "error", - { - "minimumDescriptionLength": 5, - "ts-expect-error": "allow-with-description", - "ts-ignore": true, - "ts-nocheck": false, - "ts-check": true - } - ], - "@typescript-eslint/ban-types": "warn", - "@typescript-eslint/brace-style": [ - "error", - "1tbs", - { - "allowSingleLine": true - } - ], - "@typescript-eslint/consistent-indexed-object-style": ["error"], - "@typescript-eslint/consistent-type-assertions": [ - "warn", - { - "assertionStyle": "as" - } - ], - "@typescript-eslint/consistent-type-definitions": ["error"], - "@typescript-eslint/explicit-function-return-type": [ - "warn", - { - "allowExpressions": true, - "allowTypedFunctionExpressions": true, - "allowHigherOrderFunctions": true - } - ], - "@typescript-eslint/explicit-member-accessibility": [ - "error", - { - "accessibility": "no-public" - } - ], - "@typescript-eslint/explicit-module-boundary-types": "warn", - "@typescript-eslint/member-delimiter-style": "warn", - "@typescript-eslint/method-signature-style": "error", - "@typescript-eslint/member-ordering": "error", - "@typescript-eslint/naming-convention": [ - "error", - { - "selector": "typeParameter", - "format": ["PascalCase"], - "custom": { - "match": true, - "regex": "^[A-Z][A-Za-z]+$" - } - } - ], - "@typescript-eslint/no-dynamic-delete": "warn", - "@typescript-eslint/no-empty-interface": "off", - "@typescript-eslint/no-extraneous-class": "error", - "@typescript-eslint/no-extra-parens": ["error", "functions"], - "@typescript-eslint/no-extra-semi": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "vars": "all", - "args": "none", - "argsIgnorePattern": "^_", - "ignoreRestSiblings": true - } - ], - "@typescript-eslint/no-unnecessary-type-arguments": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-argument": "warn", - "@typescript-eslint/no-unsafe-assignment": "warn", - "@typescript-eslint/no-unsafe-member-access": "warn", - "@typescript-eslint/no-unsafe-return": "warn", - "@typescript-eslint/no-useless-constructor": "warn", - "@typescript-eslint/object-curly-spacing": ["error", "always"], - "@typescript-eslint/parameter-properties": "error", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-includes": "error", - "@typescript-eslint/prefer-optional-chain": "error", - "@typescript-eslint/prefer-regexp-exec": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "error", - "@typescript-eslint/prefer-ts-expect-error": "error", - "@typescript-eslint/quotes": [ - "error", - "single", - { - "allowTemplateLiterals": true - } - ], - "@typescript-eslint/require-await": "off", - "@typescript-eslint/semi": "error", - "@typescript-eslint/sort-type-constituents": "error", - "@typescript-eslint/type-annotation-spacing": "error", - "@typescript-eslint/unified-signatures": "error", - "indent": "off" - } - }, - { - "files": ["**.test.ts"], - "rules": { - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-unused-expressions": "off", - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/unbound-method": "off", - "no-unused-expressions": "off" - } - }, - { - "files": ["tests/**"], - "rules": { - "@typescript-eslint/no-unsafe-argument": "off", - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-unsafe-assignment": "off" - } - } - ], - "parser": "@typescript-eslint/parser", - "rules": { - "import/no-named-as-default-member": "off", - "import/order": [ - "error", - { - "alphabetize": { - "order": "asc" - } - } - ], - "no-use-before-define": "warn", - "sort-keys": "warn" - } -} diff --git a/benchmark/mongoose.js b/benchmark/mongoose.js index 31bb6ce3d..57547576c 100644 --- a/benchmark/mongoose.js +++ b/benchmark/mongoose.js @@ -9,6 +9,7 @@ function isValidUrl(value) { // eslint-disable-next-line no-new new URL(value); return true; + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (err) { return false; } diff --git a/eslint.config.js b/eslint.config.js index f6773da9d..c3829cb0c 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -46,7 +46,6 @@ export default typescriptEslint.config( 'ts-nocheck': false, }, ], - '@typescript-eslint/ban-types': 'warn', '@typescript-eslint/brace-style': [ 'error', '1tbs', @@ -96,6 +95,7 @@ export default typescriptEslint.config( '@typescript-eslint/no-extra-parens': ['error', 'functions'], '@typescript-eslint/no-extra-semi': 'error', '@typescript-eslint/no-extraneous-class': 'error', + '@typescript-eslint/no-restricted-types': 'warn', '@typescript-eslint/no-unnecessary-type-arguments': 'error', '@typescript-eslint/no-unsafe-argument': 'warn', '@typescript-eslint/no-unsafe-assignment': 'warn', @@ -203,6 +203,7 @@ export default typescriptEslint.config( { files: ['tests/cjs/*.js'], rules: { + '@typescript-eslint/no-require-imports': 'off', '@typescript-eslint/no-var-requires': 'off', }, }, diff --git a/package.json b/package.json index d67a5cea6..1cd443ed9 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "ts-expect": "1.3.0", "ts-node": "10.9.2", "typescript": "5.5.2", - "typescript-eslint": "7.18.0" + "typescript-eslint": "8.0.0" }, "peerDependencies": { "mongodb": "^6.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dce7fbf86..9077030f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,10 +46,10 @@ importers: version: 9.1.0(eslint@9.8.0) eslint-config-standard: specifier: 17.1.0 - version: 17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0))(eslint-plugin-n@17.6.0(eslint@9.8.0))(eslint-plugin-promise@6.6.0(eslint@9.8.0))(eslint@9.8.0) + version: 17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0))(eslint-plugin-n@17.6.0(eslint@9.8.0))(eslint-plugin-promise@6.6.0(eslint@9.8.0))(eslint@9.8.0) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0) + version: 2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0) eslint-plugin-prettier: specifier: 5.2.1 version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.8.0))(eslint@9.8.0)(prettier@3.3.2) @@ -102,8 +102,8 @@ importers: specifier: 5.5.2 version: 5.5.2 typescript-eslint: - specifier: 7.18.0 - version: 7.18.0(eslint@9.8.0)(typescript@5.5.2) + specifier: 8.0.0 + version: 8.0.0(eslint@9.8.0)(typescript@5.5.2) packages: @@ -1062,63 +1062,62 @@ packages: '@types/yargs@17.0.24': resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.0.0': + resolution: {integrity: sha512-STIZdwEQRXAHvNUS6ILDf5z3u95Gc8jzywunxSNqX00OooIemaaNIA0vEgynJlycL5AjabYLLrIyHd4iazyvtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@7.18.0': - resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.0.0': + resolution: {integrity: sha512-pS1hdZ+vnrpDIxuFXYQpLTILglTjSYJ9MbetZctrUawogUsPdz31DIIRZ9+rab0LhYNTsk88w4fIzVheiTbWOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.0.0': + resolution: {integrity: sha512-V0aa9Csx/ZWWv2IPgTfY7T4agYwJyILESu/PVqFtTFz9RIS823mAze+NbnBI8xiwdX3iqeQbcTYlvB04G9wyQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/type-utils@8.0.0': + resolution: {integrity: sha512-mJAFP2mZLTBwAn5WI4PMakpywfWFH5nQZezUQdSKV23Pqo6o9iShQg1hP2+0hJJXP2LnZkWPphdIq4juYYwCeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.0.0': + resolution: {integrity: sha512-wgdSGs9BTMWQ7ooeHtu5quddKKs5Z5dS+fHLbrQI+ID0XWJLODGMHRfhwImiHoeO2S5Wir2yXuadJN6/l4JRxw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.0.0': + resolution: {integrity: sha512-5b97WpKMX+Y43YKi4zVcCVLtK5F98dFls3Oxui8LbnmRsseKenbbDinmvxrWegKDMmlkIq/XHuyy0UGLtpCDKg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.0.0': + resolution: {integrity: sha512-k/oS/A/3QeGLRvOWCg6/9rATJL5rec7/5s1YmdS0ZU6LHveJyGFwBvLhSRBv6i9xaj7etmosp+l+ViN1I9Aj/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.0.0': + resolution: {integrity: sha512-oN0K4nkHuOyF3PVMyETbpP5zp6wfyOvm7tWhTMfoqxSSsPmJIh6JNASuZDlODE8eE+0EB9uar+6+vxr9DBTYOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -4017,11 +4016,10 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@7.18.0: - resolution: {integrity: sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript-eslint@8.0.0: + resolution: {integrity: sha512-yQWBJutWL1PmpmDddIOl9/Mi6vZjqNCjqSGBMQ4vsc2Aiodk0SnbQQWPXbSy0HNuKCuGkw1+u4aQ2mO40TdhDQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: @@ -5577,14 +5575,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.0 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0)(typescript@5.5.2)': + '@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0)(typescript@5.5.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.18.0(eslint@9.8.0)(typescript@5.5.2) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.8.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.2) + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/type-utils': 8.0.0(eslint@9.8.0)(typescript@5.5.2) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 8.0.0 eslint: 9.8.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -5595,12 +5593,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2)': + '@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2)': dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 8.0.0 debug: 4.3.5 eslint: 9.8.0 optionalDependencies: @@ -5608,29 +5606,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.18.0': + '@typescript-eslint/scope-manager@8.0.0': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/visitor-keys': 8.0.0 - '@typescript-eslint/type-utils@7.18.0(eslint@9.8.0)(typescript@5.5.2)': + '@typescript-eslint/type-utils@8.0.0(eslint@9.8.0)(typescript@5.5.2)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.5.2) + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.2) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.2) debug: 4.3.5 - eslint: 9.8.0 ts-api-utils: 1.3.0(typescript@5.5.2) optionalDependencies: typescript: 5.5.2 transitivePeerDependencies: + - eslint - supports-color - '@typescript-eslint/types@7.18.0': {} + '@typescript-eslint/types@8.0.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.2)': + '@typescript-eslint/typescript-estree@8.0.0(typescript@5.5.2)': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/visitor-keys': 8.0.0 debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 @@ -5642,20 +5640,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.8.0)(typescript@5.5.2)': + '@typescript-eslint/utils@8.0.0(eslint@9.8.0)(typescript@5.5.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.2) + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.2) eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.18.0': + '@typescript-eslint/visitor-keys@8.0.0': dependencies: - '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/types': 8.0.0 eslint-visitor-keys: 3.4.3 JSONStream@1.3.5: @@ -6544,10 +6542,10 @@ snapshots: dependencies: eslint: 9.8.0 - eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0))(eslint-plugin-n@17.6.0(eslint@9.8.0))(eslint-plugin-promise@6.6.0(eslint@9.8.0))(eslint@9.8.0): + eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0))(eslint-plugin-n@17.6.0(eslint@9.8.0))(eslint-plugin-promise@6.6.0(eslint@9.8.0))(eslint@9.8.0): dependencies: eslint: 9.8.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0) eslint-plugin-n: 17.6.0(eslint@9.8.0) eslint-plugin-promise: 6.6.0(eslint@9.8.0) @@ -6559,11 +6557,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint@9.8.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint@9.8.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.8.0)(typescript@5.5.2) + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.2) eslint: 9.8.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -6576,7 +6574,7 @@ snapshots: eslint: 9.8.0 eslint-compat-utils: 0.1.2(eslint@9.8.0) - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0): dependencies: array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 @@ -6586,7 +6584,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.8.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint@9.8.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint@9.8.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -6597,7 +6595,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.8.0)(typescript@5.5.2) + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -8885,15 +8883,15 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@7.18.0(eslint@9.8.0)(typescript@5.5.2): + typescript-eslint@8.0.0(eslint@9.8.0)(typescript@5.5.2): dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0)(typescript@5.5.2) - '@typescript-eslint/parser': 7.18.0(eslint@9.8.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.5.2) - eslint: 9.8.0 + '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.2))(eslint@9.8.0)(typescript@5.5.2) + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.2) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.2) optionalDependencies: typescript: 5.5.2 transitivePeerDependencies: + - eslint - supports-color typescript@5.5.2: {} diff --git a/src/__tests__/schema.test.ts b/src/__tests__/schema.test.ts index d427cb3aa..3250e53df 100644 --- a/src/__tests__/schema.test.ts +++ b/src/__tests__/schema.test.ts @@ -44,7 +44,7 @@ describe('schema', () => { foo?: boolean; bar: number; }, - // eslint-disable-next-line @typescript-eslint/ban-types + // eslint-disable-next-line @typescript-eslint/no-empty-object-type {}, ] >(value); @@ -385,7 +385,7 @@ describe('schema', () => { _id: string; foo: number; }, - // eslint-disable-next-line @typescript-eslint/ban-types + // eslint-disable-next-line @typescript-eslint/no-empty-object-type {}, ] >(value); @@ -428,7 +428,7 @@ describe('schema', () => { _id: number; foo: string; }, - // eslint-disable-next-line @typescript-eslint/ban-types + // eslint-disable-next-line @typescript-eslint/no-empty-object-type {}, ] >(value); @@ -804,7 +804,7 @@ describe('schema', () => { foo?: boolean; bar: number; }, - // eslint-disable-next-line @typescript-eslint/ban-types + // eslint-disable-next-line @typescript-eslint/no-empty-object-type {}, ] >(value); diff --git a/src/model.ts b/src/model.ts index 2512f822d..9db1a907b 100644 --- a/src/model.ts +++ b/src/model.ts @@ -138,15 +138,14 @@ export interface Model Promise>; } -/* eslint-disable @typescript-eslint/ban-types */ type ModelMethodsNames = NonNullable< { - [P in keyof Model]: Model[P] extends Function + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type + [P in keyof Model]: Model[P] extends Function ? P : never; - }[keyof Model] + }[keyof Model] >; -/* eslint-enable @typescript-eslint/ban-types */ // `upsert` is a custom method, which is not wrapped with hooks. export type HookMethodsNames = Exclude;