Skip to content

Commit 28cbc14

Browse files
committed
build: migrate TypeScript ruleset for ESLint v9
Audit and update `etc/eslint/rules/typescript.js` to prepare for the typescript-eslint v7+ upgrade: - Replace `@typescript-eslint/no-var-requires` (deprecated, removed in v7) with `@typescript-eslint/no-require-imports` (same behavior, already defined but was `off`) - Formatting/layout rules (`indent`, `quotes`, `semi`, `member-delimiter-style`, `space-before-function-paren`, `type-annotation-spacing`) are deprecated in v6 in favor of `@stylistic/ts/*` but kept for now since they still work on v6; will be addressed during the toolchain version bump (PR 6) - `ban-types` and `no-empty-interface` are not yet deprecated on v6 but will need replacement in v7+ (`no-restricted-types` and `no-empty-object-type` respectively) Ref: stdlib-js/metr-issue-tracker#54
1 parent 21f8626 commit 28cbc14

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

etc/eslint/rules/typescript.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -564,19 +564,24 @@ rules[ '@typescript-eslint/no-namespace' ] = 'error';
564564
rules[ '@typescript-eslint/no-non-null-assertion' ] = 'error';
565565

566566
/**
567-
* Disables the rule against using `require` statements instead of import declarations.
567+
* Disallows the use of `require` statements except in import statements.
568568
*
569569
* @name no-require-imports
570570
* @memberof rules
571571
* @type {string}
572-
* @default 'off'
572+
* @default 'error'
573573
* @see [no-require-imports]{@link https://typescript-eslint.io/rules/no-require-imports}
574574
*
575575
* @example
576-
* // Okay...
577-
* const module = require( 'module' );
576+
* // Bad...
577+
* const moduleA = require( 'moduleA' );
578+
*
579+
* // Good...
580+
* import moduleA from 'moduleA';
581+
*
582+
* import moduleA = require( 'moduleA' );
578583
*/
579-
rules[ '@typescript-eslint/no-require-imports' ] = 'off';
584+
rules[ '@typescript-eslint/no-require-imports' ] = 'error';
580585

581586
/**
582587
* Disallows aliases for `this`.
@@ -752,22 +757,17 @@ rules[ '@typescript-eslint/no-use-before-define' ] = 'error';
752757
/**
753758
* Disallows the use of `require` statements except in import statements.
754759
*
760+
* ## Notes
761+
*
762+
* - Deprecated in typescript-eslint v6; replaced by `no-require-imports`.
763+
*
755764
* @name no-var-requires
756765
* @memberof rules
757766
* @type {string}
758-
* @default 'error'
767+
* @default 'off'
759768
* @see [no-var-requires]{@link https://typescript-eslint.io/rules/no-var-requires}
760-
*
761-
* @example
762-
* // Bad...
763-
* const moduleA = require( 'moduleA' );
764-
*
765-
* // Good...
766-
* import moduleA from 'moduleA';
767-
*
768-
* import moduleA = require( 'moduleA' );
769769
*/
770-
rules[ '@typescript-eslint/no-var-requires' ] = 'error';
770+
rules[ '@typescript-eslint/no-var-requires' ] = 'off';
771771

772772
/**
773773
* Disables the preference for `for-of` loops over standard `for` loops with index variables.

0 commit comments

Comments
 (0)