| 
1 |  | -const Module = require("module");  | 
 | 1 | +const Module = require("node:module");  | 
2 | 2 | const MODULE_MAP: Record<string, typeof Module._resolveFilename> = {};  | 
3 | 3 | const RESOLVER_MAP: Record<string, typeof require.resolve> = {};  | 
 | 4 | + | 
4 | 5 | export const addResolveAlias = (  | 
5 | 6 | 	name: string,  | 
6 |  | -	aliasMap: Record<string, string>  | 
 | 7 | +	aliasMap: Record<string, string>,  | 
7 | 8 | ) => {  | 
8 | 9 | 	const modulePath = require.resolve(name);  | 
9 |  | -	if (RESOLVER_MAP[modulePath]) {  | 
 | 10 | +	if (modulePath in RESOLVER_MAP) {  | 
10 | 11 | 		throw new Error(`Should not add resolve alias to ${name} again.`);  | 
11 | 12 | 	}  | 
12 | 13 | 	const m = require.cache[modulePath];  | 
13 | 14 | 	if (!m) {  | 
14 | 15 | 		throw new Error("Failed to resolve webpack-dev-server.");  | 
15 | 16 | 	}  | 
16 | 17 | 	RESOLVER_MAP[modulePath] = m.require.resolve;  | 
 | 18 | +	// biome-ignore lint/suspicious/noExplicitAny: <explanation>  | 
17 | 19 | 	m.require.resolve = ((id: string, options?: any) =>  | 
18 | 20 | 		aliasMap[id] ||  | 
19 |  | -		RESOLVER_MAP[modulePath]!.apply(m.require, [  | 
 | 21 | +		RESOLVER_MAP[modulePath].apply(m.require, [  | 
20 | 22 | 			id,  | 
21 |  | -			options  | 
 | 23 | +			options,  | 
22 | 24 | 		])) as typeof require.resolve;  | 
23 | 25 | 	MODULE_MAP[modulePath] = Module._resolveFilename;  | 
24 |  | -	Module._resolveFilename = Module._resolveFilename = (request: string, mod: NodeModule, ...args: unknown[]) => {  | 
25 |  | -			if (mod.filename === modulePath && aliasMap[request]) {  | 
26 |  | -				return aliasMap[request];  | 
27 |  | -			}  | 
28 |  | -			return MODULE_MAP[modulePath](request, mod, ...args);  | 
 | 26 | +	Module._resolveFilename = (  | 
 | 27 | +		request: string,  | 
 | 28 | +		mod: NodeModule,  | 
 | 29 | +		...args: unknown[]  | 
 | 30 | +	) => {  | 
 | 31 | +		if (mod.filename === modulePath && aliasMap[request]) {  | 
 | 32 | +			return aliasMap[request];  | 
 | 33 | +		}  | 
 | 34 | +		return MODULE_MAP[modulePath](request, mod, ...args);  | 
29 | 35 | 	};  | 
30 | 36 | };  | 
31 | 37 | 
 
  | 
32 | 38 | export const removeResolveAlias = (name: string) => {  | 
33 | 39 | 	const modulePath = require.resolve(name);  | 
34 |  | -	if (!RESOLVER_MAP[modulePath]) {  | 
 | 40 | +	if (!(modulePath in RESOLVER_MAP)) {  | 
35 | 41 | 		return;  | 
36 | 42 | 	}  | 
37 | 43 | 	const m = require.cache[modulePath];  | 
38 | 44 | 	if (!m) {  | 
39 | 45 | 		throw new Error("Failed to resolve webpack-dev-server");  | 
40 | 46 | 	}  | 
41 |  | -	if (RESOLVER_MAP[modulePath]) {  | 
42 |  | -		Module._resolveFilename = RESOLVER_MAP[modulePath]!;  | 
43 |  | -		m.require.resolve = RESOLVER_MAP[modulePath]!;  | 
44 |  | -		delete RESOLVER_MAP[modulePath];  | 
45 |  | -	}  | 
 | 47 | + | 
 | 48 | +	Module._resolveFilename = MODULE_MAP[modulePath];  | 
 | 49 | +	m.require.resolve = RESOLVER_MAP[modulePath];  | 
 | 50 | +	delete RESOLVER_MAP[modulePath];  | 
46 | 51 | };  | 
0 commit comments