UNPKG

rump

Version:

Opinionated flow for assembling client assets

141 lines (115 loc) 9.7 kB
'use strict'; 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=