mercurial-bower-resolver
Version:
100 lines (74 loc) • 3.55 kB
JavaScript
;
// Constants:
Object.defineProperty(exports, '__esModule', {
value: true
});
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
// Dependencies:
var _mercurial = require('./mercurial');
var _mercurial2 = _interopRequireDefault(_mercurial);
var _parser = require('./parser');
var _parser2 = _interopRequireDefault(_parser);
var _bluebird = require('bluebird');
var _bluebird2 = _interopRequireDefault(_bluebird);
var _semver = require('semver');
var _semver2 = _interopRequireDefault(_semver);
// Errors:
var DEFAULT_TARGET = 'default';
var SOURCE_MATCH_REGEX = /^hg\+(ssh|https?):\/\//i;var BRANCHES_ERROR = 'EHGBRANCHES';
var CLONE_ERROR = 'EHGCLONE';
var TAGS_ERROR = 'EHGTAGS';
var UPDATE_ERROR = 'EHGUPDATE';
var Resolver = (function () {
function Resolver(bower) {
_classCallCheck(this, Resolver);
this.bower = bower;
}
_createClass(Resolver, [{
key: 'match',
value: function match(source) {
return SOURCE_MATCH_REGEX.test(source);
}
}, {
key: 'releases',
value: function releases(source) {
var _this = this;
return _mercurial2['default'].clone(source, this.directory)['catch'](this.error(CLONE_ERROR)).then(function (directory) {
_this.directory = directory;
var branches = _mercurial2['default'].branches(directory.name)['catch'](_this.error(BRANCHES_ERROR));
var tags = _mercurial2['default'].tags(directory.name)['catch'](_this.error(TAGS_ERROR));
return _bluebird2['default'].all([branches, tags]);
}).spread(_parser2['default'].versions);
}
}, {
key: 'fetch',
value: function fetch(endpoint, cached) {
var _this2 = this;
console.log(cached);
if (cached && _semver2['default'].valid(cached.version) && cached.endpoint.target !== DEFAULT_TARGET) {
return;
}
return _mercurial2['default'].clone(endpoint.source, this.directory)['catch'](this.error(CLONE_ERROR)).then(function (directory) {
_this2.directory = directory;
return _mercurial2['default'].update(endpoint, _this2.directory.name);
})['catch'](this.error(UPDATE_ERROR)).then(function () {
return {
tempPath: _this2.directory.name
};
});
}
}, {
key: 'error',
value: function error(type) {
var _this3 = this;
return function (e) {
return _this3.bower.logger.error(type, e.toString());
};
}
}]);
return Resolver;
})();
exports['default'] = Resolver;
module.exports = exports['default'];