UNPKG

4.01 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var ConsoleLogger_1 = require("./ConsoleLogger");
4var child_process_1 = require("child_process");
5var PromisedNpm = /** @class */ (function () {
6 function PromisedNpm(param) {
7 this._logger = param.logger || new ConsoleLogger_1.ConsoleLogger();
8 }
9 PromisedNpm.prototype.install = function (moduleNames) {
10 var _this = this;
11 if (moduleNames === void 0) { moduleNames = []; }
12 return new Promise(function (resolve, reject) {
13 _this._logger.info("Installing " + moduleNames + "...");
14 child_process_1.exec("npm install --save " + moduleNames.join(" "), function (err) {
15 err ? reject(err) : resolve();
16 });
17 });
18 };
19 PromisedNpm.prototype.link = function (moduleNames) {
20 var _this = this;
21 if (moduleNames === void 0) { moduleNames = []; }
22 return new Promise(function (resolve, reject) {
23 _this._logger.info("Linking " + moduleNames + "...");
24 child_process_1.exec("npm link " + moduleNames.join(" "), function (err) {
25 err ? reject(err) : resolve();
26 });
27 });
28 };
29 PromisedNpm.prototype.uninstall = function (moduleNames) {
30 var _this = this;
31 if (moduleNames === void 0) { moduleNames = []; }
32 return new Promise(function (resolve, reject) {
33 _this._logger.info("Uninstalling " + moduleNames + "...");
34 child_process_1.exec("npm uninstall --save " + moduleNames.join(" "), function (err) {
35 err ? reject(err) : resolve();
36 });
37 });
38 };
39 PromisedNpm.prototype.unlink = function (moduleNames) {
40 var _this = this;
41 if (moduleNames === void 0) { moduleNames = []; }
42 return new Promise(function (resolve, reject) {
43 _this._logger.info("Unlinking " + moduleNames + "...");
44 child_process_1.exec("npm unlink " + moduleNames.join(" "), function (err) {
45 err ? reject(err) : resolve();
46 });
47 });
48 };
49 PromisedNpm.prototype.shrinkwrap = function () {
50 var _this = this;
51 return new Promise(function (resolve, reject) {
52 _this._logger.info("Shrinkwrapping...");
53 child_process_1.exec("npm shrinkwrap", function (err) {
54 if (err) {
55 reject(err);
56 }
57 else {
58 _this._logger.info("Added npm-shrinkwrap.json");
59 resolve();
60 }
61 });
62 });
63 };
64 PromisedNpm.prototype.ls = function (silent) {
65 var _this = this;
66 if (silent === void 0) { silent = false; }
67 return new Promise(function (resolve, reject) {
68 _this._logger.info("Listing dependencies ...");
69 child_process_1.exec("npm ls --json --production" + (silent ? " --silent" : ""), function (err, stdout, stderr) {
70 if (err) {
71 if (stderr.indexOf("extraneous") !== -1) {
72 _this._logger.error("Extraneous module found in node_modules. You must install modules using akashic-cli.");
73 }
74 return reject(err);
75 }
76 var result = JSON.parse(stdout); // npmから返るstdoutは必ずJSON形式。エラーがある場合はerrとstderrで返される。
77 resolve(result);
78 });
79 });
80 };
81 PromisedNpm.prototype.update = function (moduleNames) {
82 var _this = this;
83 if (moduleNames === void 0) { moduleNames = []; }
84 return new Promise(function (resolve, reject) {
85 _this._logger.info("Update dependencies ...");
86 child_process_1.exec("npm update " + moduleNames.join(" "), function (err) {
87 err ? reject(err) : resolve();
88 });
89 });
90 };
91 return PromisedNpm;
92}());
93exports.PromisedNpm = PromisedNpm;