Files
Pake/bin/builders/BuilderProvider.ts
2023-06-22 20:56:15 +08:00

23 lines
561 B
TypeScript
Vendored

import BaseBuilder from './BaseBuilder';
import MacBuilder from './MacBuilder';
import WinBuilder from './WinBuilder';
import LinuxBuilder from './LinuxBuilder';
const { platform } = process;
const buildersMap: Record<string, new () => BaseBuilder> = {
darwin: MacBuilder,
win32: WinBuilder,
linux: LinuxBuilder,
};
export default class BuilderProvider {
static create(): BaseBuilder {
const Builder = buildersMap[platform];
if (!Builder) {
throw new Error('The current system is not supported!');
}
return new Builder();
}
}