require('./foo.json');",
+ options: [{ allowAsImport: true }],
+ errors: [
+ {
+ messageId: 'noRequireImports',
+ line: 1,
+ column: 18,
+ },
+ ],
+ },
+ {
+ code: `
+const configValidator = new Validator(require('./a.json'));
+configValidator.addSchema(require('./a.json'));
+ `,
+ options: [{ allowAsImport: true }],
+ errors: [
+ {
+ messageId: 'noRequireImports',
+ line: 2,
+ column: 39,
+ },
+ {
+ messageId: 'noRequireImports',
+ line: 3,
+ column: 27,
+ },
+ ],
+ },
+ {
+ code: 'require(foo);',
+ options: [{ allowAsImport: true }],
+ errors: [
+ {
+ messageId: 'noRequireImports',
+ line: 1,
+ column: 1,
+ },
+ ],
+ },
+ {
+ code: 'require?.(foo);',
+ options: [{ allowAsImport: true }],
+ errors: [
+ {
+ messageId: 'noRequireImports',
+ line: 1,
+ column: 1,
},
],
},
diff --git a/packages/eslint-plugin/tests/schema-snapshots/no-require-imports.shot b/packages/eslint-plugin/tests/schema-snapshots/no-require-imports.shot
index 7561bcbc4b3c..088b2be7c210 100644
--- a/packages/eslint-plugin/tests/schema-snapshots/no-require-imports.shot
+++ b/packages/eslint-plugin/tests/schema-snapshots/no-require-imports.shot
@@ -14,6 +14,10 @@ exports[`Rule schemas should be convertible to TS types for documentation purpos
"type": "string"
},
"type": "array"
+ },
+ "allowAsImport": {
+ "description": "Allows \`require\` statements in import declarations.",
+ "type": "boolean"
}
},
"type": "object"
@@ -27,6 +31,8 @@ type Options = [
{
/** Patterns of import paths to allow requiring from. */
allow?: string[];
+ /** Allows \`require\` statements in import declarations. */
+ allowAsImport?: boolean;
},
];
"
diff --git a/packages/integration-tests/tools/pack-packages.ts b/packages/integration-tests/tools/pack-packages.ts
index 5755476cf3cf..0f8ee41dce43 100644
--- a/packages/integration-tests/tools/pack-packages.ts
+++ b/packages/integration-tests/tools/pack-packages.ts
@@ -35,6 +35,7 @@ for (const pkg of PACKAGES) {
continue;
}
+ // eslint-disable-next-line @typescript-eslint/no-require-imports -- this file needs to be sync and CJS for jest
const packageJson = require(packagePath) as PackageJSON;
if (packageJson.private === true) {
continue;
diff --git a/packages/parser/tests/lib/services.test.ts b/packages/parser/tests/lib/services.test.ts
index 8532ec979ada..e39747196aab 100644
--- a/packages/parser/tests/lib/services.test.ts
+++ b/packages/parser/tests/lib/services.test.ts
@@ -1,6 +1,6 @@
import { createProgram } from '@typescript-eslint/typescript-estree';
import fs from 'fs';
-import glob = require('glob');
+import * as glob from 'glob';
import path from 'path';
import type { ParserOptions } from '../../src/parser';
diff --git a/packages/rule-tester/src/RuleTester.ts b/packages/rule-tester/src/RuleTester.ts
index 2e0d834665a1..6d1e4537d54c 100644
--- a/packages/rule-tester/src/RuleTester.ts
+++ b/packages/rule-tester/src/RuleTester.ts
@@ -142,6 +142,7 @@ export class RuleTester extends TestFramework {
try {
// instead of creating a hard dependency, just use a soft require
// a bit weird, but if they're using this tooling, it'll be installed
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
const parser = require(TYPESCRIPT_ESLINT_PARSER) as typeof ParserType;
parser.clearCaches();
} catch {
@@ -565,6 +566,7 @@ export class RuleTester extends TestFramework {
this.#linter.defineParser(
config.parser,
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
wrapParser(require(config.parser) as Parser.ParserModule),
);
diff --git a/packages/rule-tester/src/utils/dependencyConstraints.ts b/packages/rule-tester/src/utils/dependencyConstraints.ts
index e651356587a1..47af38167115 100644
--- a/packages/rule-tester/src/utils/dependencyConstraints.ts
+++ b/packages/rule-tester/src/utils/dependencyConstraints.ts
@@ -21,6 +21,7 @@ function satisfiesDependencyConstraint(
: constraintIn;
return semver.satisfies(
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
(require(`${packageName}/package.json`) as { version: string }).version,
constraint.range,
typeof constraint.options === 'object'
diff --git a/packages/scope-manager/tests/fixtures.test.ts b/packages/scope-manager/tests/fixtures.test.ts
index 753b241b3383..9d05626d6536 100644
--- a/packages/scope-manager/tests/fixtures.test.ts
+++ b/packages/scope-manager/tests/fixtures.test.ts
@@ -1,5 +1,5 @@
import fs from 'fs';
-import glob = require('glob');
+import * as glob from 'glob';
import makeDir from 'make-dir';
import path from 'path';
diff --git a/packages/typescript-eslint/src/configs/all.ts b/packages/typescript-eslint/src/configs/all.ts
index 01d4a56f9ee1..66e90953f6b1 100644
--- a/packages/typescript-eslint/src/configs/all.ts
+++ b/packages/typescript-eslint/src/configs/all.ts
@@ -121,7 +121,6 @@ export default (
'@typescript-eslint/no-useless-constructor': 'error',
'@typescript-eslint/no-useless-empty-export': 'error',
'@typescript-eslint/no-useless-template-literals': 'error',
- '@typescript-eslint/no-var-requires': 'error',
'@typescript-eslint/non-nullable-type-assertion-style': 'error',
'no-throw-literal': 'off',
'@typescript-eslint/only-throw-error': 'error',
diff --git a/packages/typescript-eslint/src/configs/recommended-type-checked.ts b/packages/typescript-eslint/src/configs/recommended-type-checked.ts
index 50487c38d6e4..603c1fcf0a9f 100644
--- a/packages/typescript-eslint/src/configs/recommended-type-checked.ts
+++ b/packages/typescript-eslint/src/configs/recommended-type-checked.ts
@@ -40,6 +40,7 @@ export default (
'@typescript-eslint/no-namespace': 'error',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
'@typescript-eslint/no-redundant-type-constituents': 'error',
+ '@typescript-eslint/no-require-imports': 'error',
'@typescript-eslint/no-this-alias': 'error',
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
'@typescript-eslint/no-unnecessary-type-constraint': 'error',
@@ -56,7 +57,6 @@ export default (
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/no-useless-template-literals': 'error',
- '@typescript-eslint/no-var-requires': 'error',
'no-throw-literal': 'off',
'@typescript-eslint/only-throw-error': 'error',
'@typescript-eslint/prefer-as-const': 'error',
diff --git a/packages/typescript-eslint/src/configs/recommended.ts b/packages/typescript-eslint/src/configs/recommended.ts
index e5542c3e2511..0c9d5bb3c91e 100644
--- a/packages/typescript-eslint/src/configs/recommended.ts
+++ b/packages/typescript-eslint/src/configs/recommended.ts
@@ -30,6 +30,7 @@ export default (
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-namespace': 'error',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
+ '@typescript-eslint/no-require-imports': 'error',
'@typescript-eslint/no-this-alias': 'error',
'@typescript-eslint/no-unnecessary-type-constraint': 'error',
'@typescript-eslint/no-unsafe-declaration-merging': 'error',
@@ -37,7 +38,6 @@ export default (
'@typescript-eslint/no-unused-expressions': 'error',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'error',
- '@typescript-eslint/no-var-requires': 'error',
'@typescript-eslint/prefer-as-const': 'error',
'@typescript-eslint/prefer-namespace-keyword': 'error',
'@typescript-eslint/triple-slash-reference': 'error',
diff --git a/packages/typescript-eslint/src/configs/strict-type-checked.ts b/packages/typescript-eslint/src/configs/strict-type-checked.ts
index d5f15ee56f4a..35b67562b5ea 100644
--- a/packages/typescript-eslint/src/configs/strict-type-checked.ts
+++ b/packages/typescript-eslint/src/configs/strict-type-checked.ts
@@ -51,6 +51,7 @@ export default (
'@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
'@typescript-eslint/no-non-null-assertion': 'error',
'@typescript-eslint/no-redundant-type-constituents': 'error',
+ '@typescript-eslint/no-require-imports': 'error',
'@typescript-eslint/no-this-alias': 'error',
'@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error',
'@typescript-eslint/no-unnecessary-condition': 'error',
@@ -72,7 +73,6 @@ export default (
'no-useless-constructor': 'off',
'@typescript-eslint/no-useless-constructor': 'error',
'@typescript-eslint/no-useless-template-literals': 'error',
- '@typescript-eslint/no-var-requires': 'error',
'no-throw-literal': 'off',
'@typescript-eslint/only-throw-error': 'error',
'@typescript-eslint/prefer-as-const': 'error',
diff --git a/packages/typescript-eslint/src/configs/strict.ts b/packages/typescript-eslint/src/configs/strict.ts
index f6456995d90e..035a2152ae54 100644
--- a/packages/typescript-eslint/src/configs/strict.ts
+++ b/packages/typescript-eslint/src/configs/strict.ts
@@ -38,6 +38,7 @@ export default (
'@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
'@typescript-eslint/no-non-null-assertion': 'error',
+ '@typescript-eslint/no-require-imports': 'error',
'@typescript-eslint/no-this-alias': 'error',
'@typescript-eslint/no-unnecessary-type-constraint': 'error',
'@typescript-eslint/no-unsafe-declaration-merging': 'error',
@@ -47,7 +48,6 @@ export default (
'@typescript-eslint/no-unused-vars': 'error',
'no-useless-constructor': 'off',
'@typescript-eslint/no-useless-constructor': 'error',
- '@typescript-eslint/no-var-requires': 'error',
'@typescript-eslint/prefer-as-const': 'error',
'@typescript-eslint/prefer-literal-enum-member': 'error',
'@typescript-eslint/prefer-namespace-keyword': 'error',
diff --git a/packages/typescript-estree/src/create-program/createProjectService.ts b/packages/typescript-estree/src/create-program/createProjectService.ts
index 4c5072781462..9f0f44dcec68 100644
--- a/packages/typescript-estree/src/create-program/createProjectService.ts
+++ b/packages/typescript-estree/src/create-program/createProjectService.ts
@@ -31,6 +31,7 @@ export function createProjectService(
// We import this lazily to avoid its cost for users who don't use the service
// TODO: Once we drop support for TS<5.3 we can import from "typescript" directly
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
const tsserver = require('typescript/lib/tsserverlibrary') as typeof ts;
// TODO: see getWatchProgramsForProjects
diff --git a/packages/typescript-estree/tests/lib/semanticInfo-singleRun.test.ts b/packages/typescript-estree/tests/lib/semanticInfo-singleRun.test.ts
index dffc7bec3ab0..2be0199cab3d 100644
--- a/packages/typescript-estree/tests/lib/semanticInfo-singleRun.test.ts
+++ b/packages/typescript-estree/tests/lib/semanticInfo-singleRun.test.ts
@@ -1,4 +1,4 @@
-import glob = require('glob');
+import * as glob from 'glob';
import * as path from 'path';
import { createProgramFromConfigFile as createProgramFromConfigFileOriginal } from '../../src/create-program/useProvidedPrograms';
diff --git a/packages/typescript-estree/tests/lib/semanticInfo.test.ts b/packages/typescript-estree/tests/lib/semanticInfo.test.ts
index d81f65fb9887..f6818dc14076 100644
--- a/packages/typescript-estree/tests/lib/semanticInfo.test.ts
+++ b/packages/typescript-estree/tests/lib/semanticInfo.test.ts
@@ -1,5 +1,5 @@
import * as fs from 'fs';
-import glob = require('glob');
+import * as glob from 'glob';
import * as path from 'path';
import * as ts from 'typescript';
diff --git a/packages/website-eslint/src/mock/eslint-rules.js b/packages/website-eslint/src/mock/eslint-rules.js
index e38eed4cefbd..65b54e0bc983 100644
--- a/packages/website-eslint/src/mock/eslint-rules.js
+++ b/packages/website-eslint/src/mock/eslint-rules.js
@@ -1 +1,2 @@
+// eslint-disable-next-line @typescript-eslint/no-require-imports
exports.builtinRules = require('vt:eslint/rules');
diff --git a/packages/website-eslint/src/mock/eslint.js b/packages/website-eslint/src/mock/eslint.js
index fac5d44d93e6..b5d428738f9a 100644
--- a/packages/website-eslint/src/mock/eslint.js
+++ b/packages/website-eslint/src/mock/eslint.js
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/no-extraneous-class */
class RuleTester {}
class SourceCode {}
-
+// eslint-disable-next-line @typescript-eslint/no-require-imports
exports.Linter = require('vt:eslint/linter').Linter;
exports.RuleTester = RuleTester;
diff --git a/packages/website/sidebars/sidebar.rules.js b/packages/website/sidebars/sidebar.rules.js
index 4e6887df8cd9..0815d479b0b4 100644
--- a/packages/website/sidebars/sidebar.rules.js
+++ b/packages/website/sidebars/sidebar.rules.js
@@ -1,3 +1,4 @@
+// eslint-disable-next-line @typescript-eslint/no-require-imports
const plugin = require('@typescript-eslint/eslint-plugin');
const rules = Object.entries(plugin.rules).map(([name, rule]) => {
diff --git a/packages/website/src/clientModules.js b/packages/website/src/clientModules.js
index b393e94f50f7..8b38aa40ef73 100644
--- a/packages/website/src/clientModules.js
+++ b/packages/website/src/clientModules.js
@@ -1,5 +1,6 @@
import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
if (ExecutionEnvironment.canUseDOM) {
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
require('konamimojisplosion').initializeKonamimojisplosion();
}
diff --git a/packages/website/src/theme/prism-include-languages.js b/packages/website/src/theme/prism-include-languages.js
index 660275a1af1b..f356adf2a581 100644
--- a/packages/website/src/theme/prism-include-languages.js
+++ b/packages/website/src/theme/prism-include-languages.js
@@ -8,9 +8,10 @@ export default function prismIncludeLanguages(PrismObject) {
globalThis.Prism = PrismObject;
additionalLanguages.forEach(lang => {
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
require(`prismjs/components/prism-${lang}`);
});
-
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
require(`../prism/language/jsonc`);
delete globalThis.Prism;
}
diff --git a/packages/website/webpack.plugin.js b/packages/website/webpack.plugin.js
index fff4c85008be..ab5dd29767fd 100644
--- a/packages/website/webpack.plugin.js
+++ b/packages/website/webpack.plugin.js
@@ -1,5 +1,8 @@
+// eslint-disable-next-line @typescript-eslint/no-require-imports
const webpack = require('webpack');
+// eslint-disable-next-line @typescript-eslint/no-require-imports
const path = require('path');
+// eslint-disable-next-line @typescript-eslint/no-require-imports
const CopyPlugin = require('copy-webpack-plugin');
module.exports = function (/*context, options*/) {
pFad - Phonifier reborn
Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy