Skip to content

Commit d2e3e80

Browse files
chore(serve): refactor code to be more concise
1 parent 30b1b8d commit d2e3e80

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

packages/serve/index.ts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,30 +22,33 @@ import { processPromise } from "@webpack-cli/utils/resolve-packages";
2222
* @returns {Void}
2323
*/
2424

25-
interface ConfigType {
26-
installCmd: string;
27-
dependency: string;
28-
devDependency: string;
29-
optionalDependency: string;
25+
interface Commands {
26+
dependency: string[];
27+
devDependency: string[];
28+
optionalDependency: string[];
3029
}
3130

32-
const npmConfig: ConfigType = {
33-
installCmd: "install",
34-
dependency: "--save",
35-
devDependency: "--save-dev",
36-
optionalDependency: "--save-optional"
37-
};
31+
interface PackageManagerConfig {
32+
[key: string]: Commands;
33+
}
3834

39-
const yarnConfig: ConfigType = {
40-
installCmd: "add",
41-
dependency: " ",
42-
devDependency: "--save",
43-
optionalDependency: "--optional"
35+
const pmConfig: PackageManagerConfig = {
36+
npm: {
37+
dependency: ["install", "--save"],
38+
devDependency: ["install", "--save-dev"],
39+
optionalDependency: ["install", "--save-optional"]
40+
},
41+
yarn: {
42+
dependency: ["add"],
43+
devDependency: ["add", "-D"],
44+
optionalDependency: ["add", "--optional"]
45+
}
4446
};
4547

4648
const spawnWithArg = (pm: string, cmd: string): SpawnSyncReturns<Buffer> => {
47-
const pmConfig: ConfigType = pm === "npm" ? npmConfig : yarnConfig;
48-
const options: string[] = [pmConfig.installCmd, "webpack-dev-server", pmConfig[cmd]];
49+
const [installCmd, ...flags] = pmConfig[pm][cmd];
50+
const options: string[] = [installCmd, "webpack-dev-server", ...flags];
51+
4952
return spawn.sync(pm, options, { stdio: "inherit" });
5053
};
5154

0 commit comments

Comments
 (0)