Skip to content

Commit

Permalink
refactor: clean dev server code
Browse files Browse the repository at this point in the history
  • Loading branch information
LingyuCoder committed Sep 12, 2024
1 parent 8bfd639 commit 1a93c92
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 357 deletions.
34 changes: 34 additions & 0 deletions packages/rspack-dev-server/src/alias.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const RESOLVER_MAP: Record<string, typeof require.resolve> = {};
export const addResolveAlias = (
name: string,
aliasMap: Record<string, string>
) => {
if (RESOLVER_MAP[name]) {
throw new Error(`Should not add resolve alias to ${name} again.`);
}
const m = require.cache[require.resolve(name)];
if (!m) {
throw new Error("Failed to resolve webpack-dev-server.");
}
RESOLVER_MAP[name] = m.require.resolve;
m.require.resolve = ((id: string, options?: any) =>
aliasMap[id] ||
RESOLVER_MAP[name]!.apply(m.require, [
id,
options
])) as typeof require.resolve;
};

export const removeResolveAlias = (name: string) => {
if (!RESOLVER_MAP[name]) {
throw new Error(`Should add resolve alias to ${name} before removing.`);
}
const m = require.cache[require.resolve(name)];
if (!m) {
throw new Error("Failed to resolve webpack-dev-server");
}
if (RESOLVER_MAP[name]) {
m.require.resolve = RESOLVER_MAP[name]!;
delete RESOLVER_MAP[name];
}
};
Loading

0 comments on commit 1a93c92

Please sign in to comment.