Norbert de Langen c2bbe43d02
stage0
2022-07-21 11:24:07 +02:00

51 lines
1.4 KiB
TypeScript

import { JsPackageManager } from './JsPackageManager';
export class Yarn1Proxy extends JsPackageManager {
readonly type = 'yarn1';
initPackageJson() {
return this.executeCommand('yarn', ['init', '-y']);
}
getRunStorybookCommand(): string {
return 'yarn storybook';
}
getRunCommand(command: string): string {
return `yarn ${command}`;
}
protected runInstall(): void {
this.executeCommand('yarn', [], 'inherit');
}
protected runAddDeps(dependencies: string[], installAsDevDependencies: boolean): void {
let args = ['--ignore-workspace-root-check', ...dependencies];
if (installAsDevDependencies) {
args = ['-D', ...args];
}
this.executeCommand('yarn', ['add', ...args], 'inherit');
}
protected runGetVersions<T extends boolean>(
packageName: string,
fetchAllVersions: T
): Promise<T extends true ? string[] : string> {
const args = [fetchAllVersions ? 'versions' : 'version', '--json'];
const commandResult = this.executeCommand('yarn', ['info', packageName, ...args]);
try {
const parsedOutput = JSON.parse(commandResult);
if (parsedOutput.type === 'inspect') {
return parsedOutput.data;
}
throw new Error(`Unable to find versions of ${packageName} using yarn`);
} catch (e) {
throw new Error(`Unable to find versions of ${packageName} using yarn`);
}
}
}