🎨 Optimize the use of CLI.
This commit is contained in:
21
bin/builders/BuilderProvider.ts
vendored
21
bin/builders/BuilderProvider.ts
vendored
@@ -3,19 +3,20 @@ import MacBuilder from './MacBuilder';
|
||||
import WinBuilder from './WinBuilder';
|
||||
import LinuxBuilder from './LinuxBuilder';
|
||||
|
||||
import { IS_MAC, IS_WIN, IS_LINUX } from '@/utils/platform';
|
||||
const { platform } = process;
|
||||
|
||||
const buildersMap: Record<string, new () => BaseBuilder> = {
|
||||
darwin: MacBuilder,
|
||||
win32: WinBuilder,
|
||||
linux: LinuxBuilder,
|
||||
};
|
||||
|
||||
export default class BuilderProvider {
|
||||
static create(): BaseBuilder {
|
||||
if (IS_MAC) {
|
||||
return new MacBuilder();
|
||||
const Builder = buildersMap[platform];
|
||||
if (!Builder) {
|
||||
throw new Error('The current system is not supported!');
|
||||
}
|
||||
if (IS_WIN) {
|
||||
return new WinBuilder();
|
||||
}
|
||||
if (IS_LINUX) {
|
||||
return new LinuxBuilder();
|
||||
}
|
||||
throw new Error('The current system is not supported!');
|
||||
return new Builder();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user