diff --git a/src/alias.ts b/src/alias.ts index 4c8cc9a..d098a50 100644 --- a/src/alias.ts +++ b/src/alias.ts @@ -1,12 +1,13 @@ -const Module = require("module"); +const Module = require("node:module"); const MODULE_MAP: Record = {}; const RESOLVER_MAP: Record = {}; + export const addResolveAlias = ( name: string, - aliasMap: Record + aliasMap: Record, ) => { const modulePath = require.resolve(name); - if (RESOLVER_MAP[modulePath]) { + if (modulePath in RESOLVER_MAP) { throw new Error(`Should not add resolve alias to ${name} again.`); } const m = require.cache[modulePath]; @@ -14,33 +15,37 @@ export const addResolveAlias = ( throw new Error("Failed to resolve webpack-dev-server."); } RESOLVER_MAP[modulePath] = m.require.resolve; + // biome-ignore lint/suspicious/noExplicitAny: m.require.resolve = ((id: string, options?: any) => aliasMap[id] || - RESOLVER_MAP[modulePath]!.apply(m.require, [ + RESOLVER_MAP[modulePath].apply(m.require, [ id, - options + options, ])) as typeof require.resolve; MODULE_MAP[modulePath] = Module._resolveFilename; - Module._resolveFilename = Module._resolveFilename = (request: string, mod: NodeModule, ...args: unknown[]) => { - if (mod.filename === modulePath && aliasMap[request]) { - return aliasMap[request]; - } - return MODULE_MAP[modulePath](request, mod, ...args); + Module._resolveFilename = ( + request: string, + mod: NodeModule, + ...args: unknown[] + ) => { + if (mod.filename === modulePath && aliasMap[request]) { + return aliasMap[request]; + } + return MODULE_MAP[modulePath](request, mod, ...args); }; }; export const removeResolveAlias = (name: string) => { const modulePath = require.resolve(name); - if (!RESOLVER_MAP[modulePath]) { + if (!(modulePath in RESOLVER_MAP)) { return; } const m = require.cache[modulePath]; if (!m) { throw new Error("Failed to resolve webpack-dev-server"); } - if (RESOLVER_MAP[modulePath]) { - Module._resolveFilename = RESOLVER_MAP[modulePath]!; - m.require.resolve = RESOLVER_MAP[modulePath]!; - delete RESOLVER_MAP[modulePath]; - } + + Module._resolveFilename = MODULE_MAP[modulePath]; + m.require.resolve = RESOLVER_MAP[modulePath]; + delete RESOLVER_MAP[modulePath]; };