UNPKG

grind-assets

Version:
73 lines (53 loc) 5.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.optional = optional; var _grindFramework = require("grind-framework"); function _isnil(val) { return val === null || typeof val === 'undefined'; } const loadOptional = require('optional'); const semver = require('semver'); const { readFileSync } = require('fs'); const { sync: pkgUp } = require('pkg-up'); function optional(pkgName, version = null) { return { pkg: null, name: pkgName, resolved: null, assert() { return this.resolve(true); }, resolve(isFatal = false) { if (typeof this.resolved === 'boolean') { return this.resolved; } this.pkg = loadOptional(pkgName); if (this.pkg && this.pkg.default) { this.pkg = this.pkg.default; } this.resolved = !_isnil(this.pkg); let errorPkgName = pkgName; if (this.resolved && !_isnil(version)) { this.resolved = semver.satisfies(JSON.parse(readFileSync(pkgUp({ cwd: require.resolve(pkgName) }))).version, version); if (!this.resolved) { errorPkgName += `@${version}`; } } if (!this.resolved) { const error = new _grindFramework.MissingPackageError(errorPkgName, 'dev'); if (isFatal) { throw error; } Log.error(error.message, 'Unable to process.'); } return this.resolved; } }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TdXBwb3J0L29wdGlvbmFsLmpzIl0sIm5hbWVzIjpbImxvYWRPcHRpb25hbCIsInJlcXVpcmUiLCJzZW12ZXIiLCJyZWFkRmlsZVN5bmMiLCJzeW5jIiwicGtnVXAiLCJvcHRpb25hbCIsInBrZ05hbWUiLCJ2ZXJzaW9uIiwicGtnIiwibmFtZSIsInJlc29sdmVkIiwiYXNzZXJ0IiwicmVzb2x2ZSIsImlzRmF0YWwiLCJkZWZhdWx0IiwiZXJyb3JQa2dOYW1lIiwic2F0aXNmaWVzIiwiSlNPTiIsInBhcnNlIiwiY3dkIiwiZXJyb3IiLCJNaXNzaW5nUGFja2FnZUVycm9yIiwiTG9nIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUEsTUFBTUEsWUFBWSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUE1Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFtQkYsT0FBTyxDQUFDLElBQUQsQ0FBaEM7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBa0JKLE9BQU8sQ0FBQyxRQUFELENBQS9COztBQUVPLFNBQVNLLFFBQVQsQ0FBa0JDLE9BQWxCLEVBQTJCQyxPQUFPLEdBQUcsSUFBckMsRUFBMkM7QUFDakQsU0FBTztBQUNOQyxJQUFBQSxHQUFHLEVBQUUsSUFEQztBQUVOQyxJQUFBQSxJQUFJLEVBQUVILE9BRkE7QUFHTkksSUFBQUEsUUFBUSxFQUFFLElBSEo7O0FBS05DLElBQUFBLE1BQU0sR0FBRztBQUNSLGFBQU8sS0FBS0MsT0FBTCxDQUFhLElBQWIsQ0FBUDtBQUNBLEtBUEs7O0FBU05BLElBQUFBLE9BQU8sQ0FBQ0MsT0FBTyxHQUFHLEtBQVgsRUFBa0I7QUFDeEIsVUFBSSxPQUFPLEtBQUtILFFBQVosS0FBeUIsU0FBN0IsRUFBd0M7QUFDdkMsZUFBTyxLQUFLQSxRQUFaO0FBQ0E7O0FBRUQsV0FBS0YsR0FBTCxHQUFXVCxZQUFZLENBQUNPLE9BQUQsQ0FBdkI7O0FBRUEsVUFBSSxLQUFLRSxHQUFMLElBQVksS0FBS0EsR0FBTCxDQUFTTSxPQUF6QixFQUFrQztBQUNqQyxhQUFLTixHQUFMLEdBQVcsS0FBS0EsR0FBTCxDQUFTTSxPQUFwQjtBQUNBOztBQUVELFdBQUtKLFFBQUwsR0FBZ0IsUUFBQyxLQUFLRixHQUFOLENBQWhCO0FBQ0EsVUFBSU8sWUFBWSxHQUFHVCxPQUFuQjs7QUFFQSxVQUFJLEtBQUtJLFFBQUwsSUFBaUIsUUFBQ0gsT0FBRCxDQUFyQixFQUFxQztBQUNwQyxhQUFLRyxRQUFMLEdBQWdCVCxNQUFNLENBQUNlLFNBQVAsQ0FDZkMsSUFBSSxDQUFDQyxLQUFMLENBQVdoQixZQUFZLENBQUNFLEtBQUssQ0FBQztBQUFFZSxVQUFBQSxHQUFHLEVBQUVuQixPQUFPLENBQUNZLE9BQVIsQ0FBZ0JOLE9BQWhCO0FBQVAsU0FBRCxDQUFOLENBQXZCLEVBQW1FQyxPQURwRCxFQUVmQSxPQUZlLENBQWhCOztBQUtBLFlBQUksQ0FBQyxLQUFLRyxRQUFWLEVBQW9CO0FBQ25CSyxVQUFBQSxZQUFZLElBQUssSUFBR1IsT0FBUSxFQUE1QjtBQUNBO0FBQ0Q7O0FBRUQsVUFBSSxDQUFDLEtBQUtHLFFBQVYsRUFBb0I7QUFDbkIsY0FBTVUsS0FBSyxHQUFHLElBQUlDLG1DQUFKLENBQXdCTixZQUF4QixFQUFzQyxLQUF0QyxDQUFkOztBQUVBLFlBQUlGLE9BQUosRUFBYTtBQUNaLGdCQUFNTyxLQUFOO0FBQ0E7O0FBRURFLFFBQUFBLEdBQUcsQ0FBQ0YsS0FBSixDQUFVQSxLQUFLLENBQUNHLE9BQWhCLEVBQXlCLG9CQUF6QjtBQUNBOztBQUVELGFBQU8sS0FBS2IsUUFBWjtBQUNBOztBQTdDSyxHQUFQO0FBK0NBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWlzc2luZ1BhY2thZ2VFcnJvciB9IGZyb20gJ2dyaW5kLWZyYW1ld29yaydcblxuY29uc3QgbG9hZE9wdGlvbmFsID0gcmVxdWlyZSgnb3B0aW9uYWwnKVxuY29uc3Qgc2VtdmVyID0gcmVxdWlyZSgnc2VtdmVyJylcbmNvbnN0IHsgcmVhZEZpbGVTeW5jIH0gPSByZXF1aXJlKCdmcycpXG5jb25zdCB7IHN5bmM6IHBrZ1VwIH0gPSByZXF1aXJlKCdwa2ctdXAnKVxuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW9uYWwocGtnTmFtZSwgdmVyc2lvbiA9IG51bGwpIHtcblx0cmV0dXJuIHtcblx0XHRwa2c6IG51bGwsXG5cdFx0bmFtZTogcGtnTmFtZSxcblx0XHRyZXNvbHZlZDogbnVsbCxcblxuXHRcdGFzc2VydCgpIHtcblx0XHRcdHJldHVybiB0aGlzLnJlc29sdmUodHJ1ZSlcblx0XHR9LFxuXG5cdFx0cmVzb2x2ZShpc0ZhdGFsID0gZmFsc2UpIHtcblx0XHRcdGlmICh0eXBlb2YgdGhpcy5yZXNvbHZlZCA9PT0gJ2Jvb2xlYW4nKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnJlc29sdmVkXG5cdFx0XHR9XG5cblx0XHRcdHRoaXMucGtnID0gbG9hZE9wdGlvbmFsKHBrZ05hbWUpXG5cblx0XHRcdGlmICh0aGlzLnBrZyAmJiB0aGlzLnBrZy5kZWZhdWx0KSB7XG5cdFx0XHRcdHRoaXMucGtnID0gdGhpcy5wa2cuZGVmYXVsdFxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnJlc29sdmVkID0gIXRoaXMucGtnLmlzTmlsXG5cdFx0XHRsZXQgZXJyb3JQa2dOYW1lID0gcGtnTmFtZVxuXG5cdFx0XHRpZiAodGhpcy5yZXNvbHZlZCAmJiAhdmVyc2lvbi5pc05pbCkge1xuXHRcdFx0XHR0aGlzLnJlc29sdmVkID0gc2VtdmVyLnNhdGlzZmllcyhcblx0XHRcdFx0XHRKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhwa2dVcCh7IGN3ZDogcmVxdWlyZS5yZXNvbHZlKHBrZ05hbWUpIH0pKSkudmVyc2lvbixcblx0XHRcdFx0XHR2ZXJzaW9uLFxuXHRcdFx0XHQpXG5cblx0XHRcdFx0aWYgKCF0aGlzLnJlc29sdmVkKSB7XG5cdFx0XHRcdFx0ZXJyb3JQa2dOYW1lICs9IGBAJHt2ZXJzaW9ufWBcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIXRoaXMucmVzb2x2ZWQpIHtcblx0XHRcdFx0Y29uc3QgZXJyb3IgPSBuZXcgTWlzc2luZ1BhY2thZ2VFcnJvcihlcnJvclBrZ05hbWUsICdkZXYnKVxuXG5cdFx0XHRcdGlmIChpc0ZhdGFsKSB7XG5cdFx0XHRcdFx0dGhyb3cgZXJyb3Jcblx0XHRcdFx0fVxuXG5cdFx0XHRcdExvZy5lcnJvcihlcnJvci5tZXNzYWdlLCAnVW5hYmxlIHRvIHByb2Nlc3MuJylcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHRoaXMucmVzb2x2ZWRcblx0XHR9LFxuXHR9XG59XG4iXX0=