re-start
Version:
Start preset with reconfigurable tasks
79 lines (54 loc) • 3.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createPreset = exports.wrapCommand = exports.optify = exports.rayify = exports.DEV_ENV = exports.PROD_ENV = exports.TEST_ENV = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* eslint-disable no-confusing-arrow,no-ternary,no-magic-numbers */
var _start = require('start');
var _start2 = _interopRequireDefault(_start);
var _startEnv = require('start-env');
var _startEnv2 = _interopRequireDefault(_startEnv);
var _minimist = require('minimist');
var _minimist2 = _interopRequireDefault(_minimist);
var _config = require('./config');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// eslint-disable-line import/named
var TEST_ENV = exports.TEST_ENV = (0, _startEnv2.default)('NODE_ENV', 'test');
var PROD_ENV = exports.PROD_ENV = (0, _startEnv2.default)('NODE_ENV', 'production');
var DEV_ENV = exports.DEV_ENV = (0, _startEnv2.default)('NODE_ENV', 'development');
var rayify = exports.rayify = function rayify(items) {
return Array.isArray(items) ? items : [items];
};
var optify = exports.optify = function optify(obj) {
return obj ? [obj] : [];
};
var wrapCommand = exports.wrapCommand = function wrapCommand(command, commands, rawOpts) {
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return command(commands, _extends({}, rawOpts, args.length !== 0 && _typeof(args[0]) === 'object' ? args[0] : (0, _minimist2.default)(args)));
};
};
var createPreset = exports.createPreset = function createPreset(commands, defaults) {
return function () {
var startOrOpts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var maybeOpts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var start = null;
var rawOpts = startOrOpts;
if (typeof startOrOpts === 'function') {
start = startOrOpts;
rawOpts = maybeOpts;
}
var opts = _extends({}, defaults, (_config.config || {}).restart, rawOpts);
var preset = { start: start || (0, _start2.default)(opts.reporter(opts.reporterOpts)) };
/* beautify preserve:start */
Object.assign(preset, Object.keys(commands).reduce(function (configured, key) {
return Object.assign(configured, _defineProperty({}, key, wrapCommand(commands[key], preset, opts)));
}, {}));
/* beautify preserve:end */
return preset;
};
};