UNPKG

mercurial-bower-resolver

Version:
100 lines (74 loc) 3.55 kB
'use strict'; // 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'];