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( packageName: string, fetchAllVersions: T ): Promise { 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`); } } }