rump
Version:
Opinionated flow for assembling client assets
141 lines (115 loc) • 9.7 kB
JavaScript
;
var _get = require('babel-runtime/helpers/get')['default'];
var _inherits = require('babel-runtime/helpers/inherits')['default'];
var _createClass = require('babel-runtime/helpers/create-class')['default'];
var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
var _toConsumableArray = require('babel-runtime/helpers/to-consumable-array')['default'];
var _Symbol = require('babel-runtime/core-js/symbol')['default'];
var _Object$defineProperties = require('babel-runtime/core-js/object/define-properties')['default'];
var _Object$keys = require('babel-runtime/core-js/object/keys')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _configs = require('./configs');
var _configs2 = _interopRequireDefault(_configs);
var _extend = require('extend');
var _extend2 = _interopRequireDefault(_extend);
var _events = require('events');
var _path = require('path');
var lastOptionsKey = _Symbol('lastOptions');
var Rump = (function (_EventEmitter) {
_inherits(Rump, _EventEmitter);
function Rump() {
_classCallCheck(this, Rump);
_get(Object.getPrototypeOf(Rump.prototype), 'constructor', this).call(this);
this.configs = _Object$defineProperties({}, {
main: {
get: function get() {
return _configs2['default'].main;
},
configurable: true,
enumerable: true
},
watch: {
get: function get() {
return _configs2['default'].watch;
},
configurable: true,
enumerable: true
}
});
this.taskPrefix = '';
this[lastOptionsKey] = {};
}
_createClass(Rump, [{
key: 'addGulpTasks',
value: function addGulpTasks() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
this.taskPrefix = options.prefix;
require('./gulp');
this.emit('gulp:main', options);
return this;
}
}, {
key: 'autoload',
value: function autoload() {
var pkg = require((0, _path.resolve)('package'));
var _pkg$dependencies = pkg.dependencies;
var dependencies = _pkg$dependencies === undefined ? {} : _pkg$dependencies;
var _pkg$devDependencies = pkg.devDependencies;
var devDependencies = _pkg$devDependencies === undefined ? {} : _pkg$devDependencies;
var _pkg$optionalDependencies = pkg.optionalDependencies;
var optionalDependencies = _pkg$optionalDependencies === undefined ? {} : _pkg$optionalDependencies;
var _pkg$peerDependencies = pkg.peerDependencies;
var peerDependencies = _pkg$peerDependencies === undefined ? {} : _pkg$peerDependencies;
var keys1 = _Object$keys(dependencies);
var keys2 = _Object$keys(devDependencies);
var keys3 = _Object$keys(optionalDependencies);
var keys4 = _Object$keys(peerDependencies);
var modules = [].concat(_toConsumableArray(keys1), _toConsumableArray(keys2), _toConsumableArray(keys3), _toConsumableArray(keys4));
modules.filter(isRumpModule).forEach(require);
return this;
}
}, {
key: 'configure',
value: function configure(options) {
this[lastOptionsKey] = (0, _extend2['default'])(true, {}, options);
(0, _configs.rebuild)(options);
this.emit('update:main');
return this;
}
}, {
key: 'reconfigure',
value: function reconfigure(options) {
return this.configure((0, _extend2['default'])(true, this[lastOptionsKey], options));
}
}, {
key: 'taskName',
value: function taskName() {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return [this.taskPrefix].concat(args).filter(function (x) {
return typeof x === 'string';
}).join(':').split(':').filter(function (x) {
return x;
}).join(':');
}
}]);
return Rump;
})(_events.EventEmitter);
exports['default'] = new Rump();
function isRumpModule(mod) {
if (/^rump-/.test(mod)) {
try {
require.resolve(mod);
return true;
} catch (e) {
return false;
}
}
return false;
}
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,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Q0FDVixNQUFNLENBQUMsVUFBQSxDQUFDO2VBQUksQ0FBQztPQUFBLENBQUMsQ0FDZCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7S0FDYjs7O1NBckRHLElBQUk7OztxQkF3REssSUFBSSxJQUFJLEVBQUU7O0FBRXpCLFNBQVMsWUFBWSxDQUFDLEdBQUcsRUFBRTtBQUN6QixNQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDckIsUUFBSTtBQUNGLGFBQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDcEIsYUFBTyxJQUFJLENBQUE7S0FDWixDQUNELE9BQU0sQ0FBQyxFQUFFO0FBQ1AsYUFBTyxLQUFLLENBQUE7S0FDYjtHQUNGO0FBQ0QsU0FBTyxLQUFLLENBQUE7Q0FDYiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25maWdzLCB7cmVidWlsZH0gZnJvbSAnLi9jb25maWdzJ1xuaW1wb3J0IGV4dGVuZCBmcm9tICdleHRlbmQnXG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnZXZlbnRzJ1xuaW1wb3J0IHtyZXNvbHZlfSBmcm9tICdwYXRoJ1xuXG5jb25zdCBsYXN0T3B0aW9uc0tleSA9IFN5bWJvbCgnbGFzdE9wdGlvbnMnKVxuXG5jbGFzcyBSdW1wIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgY29uZmlncyA9IHtcbiAgICBnZXQgbWFpbigpIHsgcmV0dXJuIGNvbmZpZ3MubWFpbiB9LFxuICAgIGdldCB3YXRjaCgpIHsgcmV0dXJuIGNvbmZpZ3Mud2F0Y2ggfSxcbiAgfVxuICB0YXNrUHJlZml4ID0gJydcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpc1tsYXN0T3B0aW9uc0tleV0gPSB7fVxuICB9XG5cbiAgYWRkR3VscFRhc2tzKG9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMudGFza1ByZWZpeCA9IG9wdGlvbnMucHJlZml4XG4gICAgcmVxdWlyZSgnLi9ndWxwJylcbiAgICB0aGlzLmVtaXQoJ2d1bHA6bWFpbicsIG9wdGlvbnMpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGF1dG9sb2FkKCkge1xuICAgIGNvbnN0IHBrZyA9IHJlcXVpcmUocmVzb2x2ZSgncGFja2FnZScpKSxcbiAgICAgICAgICB7ZGVwZW5kZW5jaWVzID0ge319ID0gcGtnLFxuICAgICAgICAgIHtkZXZEZXBlbmRlbmNpZXMgPSB7fX0gPSBwa2csXG4gICAgICAgICAge29wdGlvbmFsRGVwZW5kZW5jaWVzID0ge319ID0gcGtnLFxuICAgICAgICAgIHtwZWVyRGVwZW5kZW5jaWVzID0ge319ID0gcGtnLFxuICAgICAgICAgIGtleXMxID0gT2JqZWN0LmtleXMoZGVwZW5kZW5jaWVzKSxcbiAgICAgICAgICBrZXlzMiA9IE9iamVjdC5rZXlzKGRldkRlcGVuZGVuY2llcyksXG4gICAgICAgICAga2V5czMgPSBPYmplY3Qua2V5cyhvcHRpb25hbERlcGVuZGVuY2llcyksXG4gICAgICAgICAga2V5czQgPSBPYmplY3Qua2V5cyhwZWVyRGVwZW5kZW5jaWVzKSxcbiAgICAgICAgICBtb2R1bGVzID0gWy4uLmtleXMxLCAuLi5rZXlzMiwgLi4ua2V5czMsIC4uLmtleXM0XVxuICAgIG1vZHVsZXMuZmlsdGVyKGlzUnVtcE1vZHVsZSkuZm9yRWFjaChyZXF1aXJlKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBjb25maWd1cmUob3B0aW9ucykge1xuICAgIHRoaXNbbGFzdE9wdGlvbnNLZXldID0gZXh0ZW5kKHRydWUsIHt9LCBvcHRpb25zKVxuICAgIHJlYnVpbGQob3B0aW9ucylcbiAgICB0aGlzLmVtaXQoJ3VwZGF0ZTptYWluJylcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcmVjb25maWd1cmUob3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyZShleHRlbmQodHJ1ZSwgdGhpc1tsYXN0T3B0aW9uc0tleV0sIG9wdGlvbnMpKVxuICB9XG5cbiAgdGFza05hbWUoLi4uYXJncykge1xuICAgIHJldHVybiBbdGhpcy50YXNrUHJlZml4XVxuICAgICAgLmNvbmNhdChhcmdzKVxuICAgICAgLmZpbHRlcih4ID0+IHR5cGVvZiB4ID09PSAnc3RyaW5nJylcbiAgICAgIC5qb2luKCc6JylcbiAgICAgIC5zcGxpdCgnOicpXG4gICAgICAuZmlsdGVyKHggPT4geClcbiAgICAgIC5qb2luKCc6JylcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgUnVtcCgpXG5cbmZ1bmN0aW9uIGlzUnVtcE1vZHVsZShtb2QpIHtcbiAgaWYoL15ydW1wLS8udGVzdChtb2QpKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlcXVpcmUucmVzb2x2ZShtb2QpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICBjYXRjaChlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG4iXX0=