install-module-linked
Version:
Installs and symlinks a module into node_modules
34 lines • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return getSpecifier;
}
});
var _getfilecompat = require("get-file-compat");
var _parseInstallStringts = /*#__PURE__*/ _interop_require_default(require("./parseInstallString.js"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function getSpecifier(installString, callback) {
var _parseInstallString = (0, _parseInstallStringts.default)(installString), name = _parseInstallString.name, version = _parseInstallString.version;
if (version) return callback(undefined, installString);
// URL-encode the package name (handles scoped packages: @scope/pkg -> @scope%2Fpkg)
var encodedName = encodeURIComponent(name).replace(/%40/g, '@');
(0, _getfilecompat.getContent)("https://registry.npmjs.org/".concat(encodedName, "/latest"), 'utf8', function(err, res) {
if (err) return callback(err);
try {
var _ref;
var json = JSON.parse((_ref = res === null || res === void 0 ? void 0 : res.content) !== null && _ref !== void 0 ? _ref : 'null');
callback(undefined, "".concat(name, "@").concat(json.version));
} catch (err) {
callback(err);
}
});
}
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }