1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var ConsoleLogger_1 = require("./ConsoleLogger");
|
4 | var child_process_1 = require("child_process");
|
5 | var PromisedNpm = (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);
|
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 | }());
|
93 | exports.PromisedNpm = PromisedNpm;
|