1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.NPMProxy = void 0;
|
7 |
|
8 | var _semver = _interopRequireDefault(require("@storybook/semver"));
|
9 |
|
10 | var _JsPackageManager = require("./JsPackageManager");
|
11 |
|
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13 |
|
14 | class NPMProxy extends _JsPackageManager.JsPackageManager {
|
15 | constructor(...args) {
|
16 | super(...args);
|
17 | this.type = 'npm';
|
18 | this.installArgs = void 0;
|
19 | }
|
20 |
|
21 | initPackageJson() {
|
22 | return this.executeCommand('npm', ['init', '-y']);
|
23 | }
|
24 |
|
25 | getRunStorybookCommand() {
|
26 | return 'npm run storybook';
|
27 | }
|
28 |
|
29 | getRunCommand(command) {
|
30 | return `npm run ${command}`;
|
31 | }
|
32 |
|
33 | getNpmVersion() {
|
34 | return this.executeCommand('npm', ['--version']);
|
35 | }
|
36 |
|
37 | hasLegacyPeerDeps() {
|
38 | const result = this.executeCommand('npm', ['config', 'get', 'legacy-peer-deps', '--location=project']);
|
39 | return result.trim() === 'true';
|
40 | }
|
41 |
|
42 | setLegacyPeerDeps() {
|
43 | this.executeCommand('npm', ['config', 'set', 'legacy-peer-deps=true', '--location=project']);
|
44 | }
|
45 |
|
46 | needsLegacyPeerDeps(version) {
|
47 | return _semver.default.gte(version, '7.0.0') && !this.hasLegacyPeerDeps();
|
48 | }
|
49 |
|
50 | getInstallArgs() {
|
51 | if (!this.installArgs) {
|
52 | this.installArgs = this.needsLegacyPeerDeps(this.getNpmVersion()) ? ['install', '--legacy-peer-deps'] : ['install'];
|
53 | }
|
54 |
|
55 | return this.installArgs;
|
56 | }
|
57 |
|
58 | runInstall() {
|
59 | this.executeCommand('npm', this.getInstallArgs(), 'inherit');
|
60 | }
|
61 |
|
62 | runAddDeps(dependencies, installAsDevDependencies) {
|
63 | let args = [...dependencies];
|
64 |
|
65 | if (installAsDevDependencies) {
|
66 | args = ['-D', ...args];
|
67 | }
|
68 |
|
69 | this.executeCommand('npm', [...this.getInstallArgs(), ...args], 'inherit');
|
70 | }
|
71 |
|
72 | runGetVersions(packageName, fetchAllVersions) {
|
73 | const args = [fetchAllVersions ? 'versions' : 'version', '--json'];
|
74 | const commandResult = this.executeCommand('npm', ['info', packageName, ...args]);
|
75 |
|
76 | try {
|
77 | const parsedOutput = JSON.parse(commandResult);
|
78 |
|
79 | if (parsedOutput.error) {
|
80 |
|
81 | throw new Error(parsedOutput.error.summary);
|
82 | } else {
|
83 | return parsedOutput;
|
84 | }
|
85 | } catch (e) {
|
86 | throw new Error(`Unable to find versions of ${packageName} using npm`);
|
87 | }
|
88 | }
|
89 |
|
90 | }
|
91 |
|
92 | exports.NPMProxy = NPMProxy; |
\ | No newline at end of file |