pkg-fetch
Version:
Github Releases page of this project contains base binaries, used by `pkg` to create executables. `pkg-fetch` npm package downloads base binaries or compiles them from source.
63 lines (41 loc) • 1.6 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
exports.localPlace = localPlace;
exports.remotePlace = remotePlace;
var _semver = require('semver');
var _expandTemplate = require('expand-template');
var _expandTemplate2 = _interopRequireDefault(_expandTemplate);
var _os = require('os');
var _os2 = _interopRequireDefault(_os);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _places = require('../places.json');
var _places2 = _interopRequireDefault(_places);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var expand = (0, _expandTemplate2.default)();
var PKG_CACHE_PATH = process.env.PKG_CACHE_PATH;
var cachePath = PKG_CACHE_PATH || _path2.default.join(_os2.default.homedir(), '.pkg-cache');
function tagFromVersion(version) {
var mj = (0, _semver.major)(version);
var mn = (0, _semver.minor)(version);
return 'v' + mj + '.' + mn;
}
function localPlace(opts) {
var p = _places2.default.localPlace;
var version = opts.version;
var tag = tagFromVersion(version);
(0, _assign2.default)(opts, { tag: tag });
var atHome = _path2.default.join(cachePath, p);
return expand(_path2.default.resolve(atHome), opts);
}
function remotePlace(opts) {
var p = _places2.default.remotePlace;
var version = opts.version;
var tag = tagFromVersion(version);
(0, _assign2.default)(opts, { tag: tag });
return { tag: tag, name: expand(p, opts) };
}