node.js
7.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.requirePackage = requirePackage;
require("source-map-support/register");
var _system = require("./system");
var _logger = _interopRequireDefault(require("./logger"));
var _teen_process = require("teen_process");
var _path = _interopRequireDefault(require("path"));
async function linkGlobalPackage(packageName) {
try {
_logger.default.debug(`Linking package '${packageName}'`);
const cmd = (0, _system.isWindows)() ? 'npm.cmd' : 'npm';
await (0, _teen_process.exec)(cmd, ['link', packageName], {
timeout: 20000
});
} catch (err) {
const msg = `Unable to load package '${packageName}', linking failed: ${err.message}`;
_logger.default.debug(msg);
if (err.stderr) {
_logger.default.debug(err.stderr);
}
throw new Error(msg);
}
}
async function requirePackage(packageName) {
try {
_logger.default.debug(`Loading local package '${packageName}'`);
return require(packageName);
} catch (err) {
_logger.default.debug(`Failed to load local package '${packageName}': ${err.message}`);
}
try {
const globalPackageName = _path.default.resolve(process.env.npm_config_prefix, 'lib', 'node_modules', packageName);
_logger.default.debug(`Loading global package '${globalPackageName}'`);
return require(globalPackageName);
} catch (err) {
_logger.default.debug(`Failed to load global package '${packageName}': ${err.message}`);
}
try {
await linkGlobalPackage(packageName);
_logger.default.debug(`Retrying load of linked package '${packageName}'`);
return require(packageName);
} catch (err) {
_logger.default.errorAndThrow(`Unable to load package '${packageName}': ${err.message}`);
}
}require('source-map-support').install();
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ub2RlLmpzIl0sIm5hbWVzIjpbImxpbmtHbG9iYWxQYWNrYWdlIiwicGFja2FnZU5hbWUiLCJsb2ciLCJkZWJ1ZyIsImNtZCIsInRpbWVvdXQiLCJlcnIiLCJtc2ciLCJtZXNzYWdlIiwic3RkZXJyIiwiRXJyb3IiLCJyZXF1aXJlUGFja2FnZSIsInJlcXVpcmUiLCJnbG9iYWxQYWNrYWdlTmFtZSIsInBhdGgiLCJyZXNvbHZlIiwicHJvY2VzcyIsImVudiIsIm5wbV9jb25maWdfcHJlZml4IiwiZXJyb3JBbmRUaHJvdyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFRQSxlQUFlQSxpQkFBZixDQUFrQ0MsV0FBbEMsRUFBK0M7QUFDN0MsTUFBSTtBQUNGQyxvQkFBSUMsS0FBSixDQUFXLG9CQUFtQkYsV0FBWSxHQUExQzs7QUFDQSxVQUFNRyxHQUFHLEdBQUcsMkJBQWMsU0FBZCxHQUEwQixLQUF0QztBQUNBLFVBQU0sd0JBQUtBLEdBQUwsRUFBVSxDQUFDLE1BQUQsRUFBU0gsV0FBVCxDQUFWLEVBQWlDO0FBQUNJLE1BQUFBLE9BQU8sRUFBRTtBQUFWLEtBQWpDLENBQU47QUFDRCxHQUpELENBSUUsT0FBT0MsR0FBUCxFQUFZO0FBQ1osVUFBTUMsR0FBRyxHQUFJLDJCQUEwQk4sV0FBWSxzQkFBcUJLLEdBQUcsQ0FBQ0UsT0FBUSxFQUFwRjs7QUFDQU4sb0JBQUlDLEtBQUosQ0FBVUksR0FBVjs7QUFDQSxRQUFJRCxHQUFHLENBQUNHLE1BQVIsRUFBZ0I7QUFHZFAsc0JBQUlDLEtBQUosQ0FBVUcsR0FBRyxDQUFDRyxNQUFkO0FBQ0Q7O0FBQ0QsVUFBTSxJQUFJQyxLQUFKLENBQVVILEdBQVYsQ0FBTjtBQUNEO0FBQ0Y7O0FBV0QsZUFBZUksY0FBZixDQUErQlYsV0FBL0IsRUFBNEM7QUFFMUMsTUFBSTtBQUNGQyxvQkFBSUMsS0FBSixDQUFXLDBCQUF5QkYsV0FBWSxHQUFoRDs7QUFDQSxXQUFPVyxPQUFPLENBQUNYLFdBQUQsQ0FBZDtBQUNELEdBSEQsQ0FHRSxPQUFPSyxHQUFQLEVBQVk7QUFDWkosb0JBQUlDLEtBQUosQ0FBVyxpQ0FBZ0NGLFdBQVksTUFBS0ssR0FBRyxDQUFDRSxPQUFRLEVBQXhFO0FBQ0Q7O0FBR0QsTUFBSTtBQUNGLFVBQU1LLGlCQUFpQixHQUFHQyxjQUFLQyxPQUFMLENBQWFDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxpQkFBekIsRUFBNEMsS0FBNUMsRUFBbUQsY0FBbkQsRUFBbUVqQixXQUFuRSxDQUExQjs7QUFDQUMsb0JBQUlDLEtBQUosQ0FBVywyQkFBMEJVLGlCQUFrQixHQUF2RDs7QUFDQSxXQUFPRCxPQUFPLENBQUNDLGlCQUFELENBQWQ7QUFDRCxHQUpELENBSUUsT0FBT1AsR0FBUCxFQUFZO0FBQ1pKLG9CQUFJQyxLQUFKLENBQVcsa0NBQWlDRixXQUFZLE1BQUtLLEdBQUcsQ0FBQ0UsT0FBUSxFQUF6RTtBQUNEOztBQUdELE1BQUk7QUFDRixVQUFNUixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUF2Qjs7QUFDQUMsb0JBQUlDLEtBQUosQ0FBVyxvQ0FBbUNGLFdBQVksR0FBMUQ7O0FBQ0EsV0FBT1csT0FBTyxDQUFDWCxXQUFELENBQWQ7QUFDRCxHQUpELENBSUUsT0FBT0ssR0FBUCxFQUFZO0FBQ1pKLG9CQUFJaUIsYUFBSixDQUFtQiwyQkFBMEJsQixXQUFZLE1BQUtLLEdBQUcsQ0FBQ0UsT0FBUSxFQUExRTtBQUNEO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1dpbmRvd3MgfSBmcm9tICcuL3N5c3RlbSc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogSW50ZXJuYWwgdXRpbGl0eSB0byBsaW5rIGdsb2JhbCBwYWNrYWdlIHRvIGxvY2FsIGNvbnRleHRcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIG5hbWUgb2YgdGhlIHBhY2thZ2UgdG8gbGlua1xuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb21tYW5kIGZhaWxzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxpbmtHbG9iYWxQYWNrYWdlIChwYWNrYWdlTmFtZSkge1xuICB0cnkge1xuICAgIGxvZy5kZWJ1ZyhgTGlua2luZyBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSdgKTtcbiAgICBjb25zdCBjbWQgPSBpc1dpbmRvd3MoKSA/ICducG0uY21kJyA6ICducG0nO1xuICAgIGF3YWl0IGV4ZWMoY21kLCBbJ2xpbmsnLCBwYWNrYWdlTmFtZV0sIHt0aW1lb3V0OiAyMDAwMH0pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zdCBtc2cgPSBgVW5hYmxlIHRvIGxvYWQgcGFja2FnZSAnJHtwYWNrYWdlTmFtZX0nLCBsaW5raW5nIGZhaWxlZDogJHtlcnIubWVzc2FnZX1gO1xuICAgIGxvZy5kZWJ1Zyhtc2cpO1xuICAgIGlmIChlcnIuc3RkZXJyKSB7XG4gICAgICAvLyBsb2cgdGhlIHN0ZGVyciBpZiB0aGVyZSwgYnV0IGRvIG5vdCBhZGQgdG8gdGhyb3duIGVycm9yIGFzIGl0IGlzXG4gICAgICAvLyBfdmVyeV8gdmVyYm9zZVxuICAgICAgbG9nLmRlYnVnKGVyci5zdGRlcnIpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgfVxufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gdG8gZXh0ZW5kIG5vZGUgZnVuY3Rpb25hbGl0eSwgYWxsb3dpbmcgdXMgdG8gcmVxdWlyZVxuICogbW9kdWxlcyB0aGF0IGFyZSBpbnN0YWxsZWQgZ2xvYmFsbHkuIElmIHRoZSBwYWNrYWdlIGNhbm5vdCBiZSByZXF1aXJlZCxcbiAqIHRoaXMgd2lsbCBhdHRlbXB0IHRvIGxpbmsgdGhlIHBhY2thZ2UgYW5kIHRoZW4gcmUtcmVxdWlyZSBpdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYWNrYWdlTmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlIHRvIGJlIHJlcXVpcmVkXG4gKiBAcmV0dXJucyB7b2JqZWN0fSAtIHRoZSBwYWNrYWdlIG9iamVjdFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBwYWNrYWdlIGlzIG5vdCBmb3VuZCBsb2NhbGx5IG9yIGdsb2JhbGx5XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlcXVpcmVQYWNrYWdlIChwYWNrYWdlTmFtZSkge1xuICAvLyBmaXJzdCwgZ2V0IGl0IGluIHRoZSBub3JtYWwgd2F5IChzZWUgaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9tb2R1bGVzLmh0bWwjbW9kdWxlc19hbGxfdG9nZXRoZXIpXG4gIHRyeSB7XG4gICAgbG9nLmRlYnVnKGBMb2FkaW5nIGxvY2FsIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9J2ApO1xuICAgIHJldHVybiByZXF1aXJlKHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmRlYnVnKGBGYWlsZWQgdG8gbG9hZCBsb2NhbCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICAvLyBzZWNvbmQsIGdldCBpdCBmcm9tIHdoZXJlIGl0IG91Z2h0IHRvIGJlIGluIHRoZSBnbG9iYWwgbm9kZV9tb2R1bGVzXG4gIHRyeSB7XG4gICAgY29uc3QgZ2xvYmFsUGFja2FnZU5hbWUgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5lbnYubnBtX2NvbmZpZ19wcmVmaXgsICdsaWInLCAnbm9kZV9tb2R1bGVzJywgcGFja2FnZU5hbWUpO1xuICAgIGxvZy5kZWJ1ZyhgTG9hZGluZyBnbG9iYWwgcGFja2FnZSAnJHtnbG9iYWxQYWNrYWdlTmFtZX0nYCk7XG4gICAgcmV0dXJuIHJlcXVpcmUoZ2xvYmFsUGFja2FnZU5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZGVidWcoYEZhaWxlZCB0byBsb2FkIGdsb2JhbCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICAvLyB0aGlyZCwgbGluayB0aGUgZmlsZSBhbmQgZ2V0IGxvY2FsbHlcbiAgdHJ5IHtcbiAgICBhd2FpdCBsaW5rR2xvYmFsUGFja2FnZShwYWNrYWdlTmFtZSk7XG4gICAgbG9nLmRlYnVnKGBSZXRyeWluZyBsb2FkIG9mIGxpbmtlZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSdgKTtcbiAgICByZXR1cm4gcmVxdWlyZShwYWNrYWdlTmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBVbmFibGUgdG8gbG9hZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuZXhwb3J0IHsgcmVxdWlyZVBhY2thZ2UgfTtcbiJdLCJmaWxlIjoibGliL25vZGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==