diff --git a/scripts/build/config.mjs b/scripts/build/config.mjs index ee0f480c0..424630e26 100644 --- a/scripts/build/config.mjs +++ b/scripts/build/config.mjs @@ -58,55 +58,58 @@ const pluginFiles = [ { input: "src/language-js/parse/typescript.js", replaceModule: [ - // `@typescript-eslint/typescript-estree` v4 - { - module: "*", - find: 'require("globby")', - replacement: "{}", - }, - { - module: "*", - find: "extra.projects = prepareAndTransformProjects(", - replacement: "extra.projects = [] || prepareAndTransformProjects(", - }, - { - module: "*", - find: "process.versions.node", - replacement: JSON.stringify("999.999.999"), - }, - { - module: "*", - find: "process.cwd()", - replacement: JSON.stringify("/prettier-security-dirname-placeholder"), - }, - { - module: "*", - find: 'require("perf_hooks")', - replacement: "{}", - }, - { - module: "*", - find: 'require("inspector")', - replacement: "{}", - }, - { - module: "*", - find: "typescriptVersionIsAtLeast[version] = semverCheck(version);", - replacement: "typescriptVersionIsAtLeast[version] = true;", - }, - // The next two replacement fixed webpack warning `Critical dependency: require function is used in a way in which dependencies cannot be statically extracted` - // #12338 - { - module: require.resolve( - "@typescript-eslint/typescript-estree/dist/create-program/shared.js" - ), - find: "moduleResolver = require(moduleResolverPath);", - replacement: "throw new Error('Dynamic require is not supported');", - }, { module: require.resolve("typescript"), process: modifyTypescriptModule, }, + { + module: require.resolve( + "@typescript-eslint/typescript-estree/dist/parser.js" + ), + process(text) { + text = text + .replace('require("globby")', "{}") + .replace('require("is-glob")', "{}") + .replace('require("semver")', "{}") + .replace('require("path")', "{}") + .replace('require("./create-program/createDefaultProgram")', "{}") + .replace('require("./create-program/createIsolatedProgram")', "{}") + .replace('require("./create-program/createProjectProgram")', "{}") + .replace( + 'require("./create-program/shared")', + "{ensureAbsolutePath: path => path}" + ) + .replace('require("./create-program/useProvidedPrograms")', "{}") + .replace( + "process.cwd()", + JSON.stringify("/prettier-security-dirname-placeholder") + ) + .replace("warnAboutTSVersion();", "// warnAboutTSVersion();") + .replace( + "const isRunningSupportedTypeScriptVersion = ", + "const isRunningSupportedTypeScriptVersion = true || " + ) + .replace("extra.projects = ", "extra.projects = [] || ") + .replace("inferSingleRun(options);", "// inferSingleRun(options);"); + return text; + }, + }, + { + module: require.resolve( + "@typescript-eslint/typescript-estree/dist/create-program/getScriptKind.js" + ), + process: (text) => + text.replace( + 'require("path")', + "{extname: file => file.split('.').pop()}" + ), + }, + { + module: require.resolve( + "@typescript-eslint/typescript-estree/dist/version-check.js" + ), + text: "module.exports.typescriptVersionIsAtLeast = new Proxy({}, {get: () => true})", + }, { module: require.resolve("debug/src/browser.js"), path: path.join(dirname, "./shims/debug.js"),