@dojo/cli
Version:
37 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const cs = require('cross-spawn');
function convertToInlineDependencies(dependencies) {
return Object.keys(dependencies).reduce((inlineDependencies, key) => {
inlineDependencies.push(`${key}@${dependencies[key]}`);
return inlineDependencies;
}, []);
}
function npmInstall(args = []) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
cs.spawn('npm', ['--silent', 'install', ...args], { stdio: 'inherit' })
.on('close', () => {
resolve();
})
.on('error', (err) => {
reject(err);
});
});
});
}
function installDevDependencies({ devDependencies = {} }) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return npmInstall(['--save-dev', ...convertToInlineDependencies(devDependencies)]);
});
}
exports.installDevDependencies = installDevDependencies;
function installDependencies({ dependencies = {} }) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return npmInstall(['--save', ...convertToInlineDependencies(dependencies)]);
});
}
exports.installDependencies = installDependencies;
exports.default = npmInstall;
//# sourceMappingURL=npmInstall.js.map