UNPKG

abstract-migrate

Version:
92 lines (67 loc) 2.39 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); exports.default = actionWrapper; var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); var _config = require('./config'); var _config2 = _interopRequireDefault(_config); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable no-param-reassign */ function formatRuntime(duration) { if (duration > 1500) { duration /= 1000; duration = duration.toFixed(2); duration += 's'; } else { duration += 'ms'; } return duration; } /* eslint-enable no-param-reassign */ function actionWrapper(action) { var startTime = Date.now(); return function () { var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() { var executionTime, _args = arguments; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; _context.next = 3; return action.apply(undefined, _args); case 3: _context.next = 10; break; case 5: _context.prev = 5; _context.t0 = _context['catch'](0); console.error(_chalk2.default.red.bold('Error:') + ' ' + _context.t0.message); if (_config2.default.debug) { console.error(_context.t0.stack); } return _context.abrupt('return', process.exit(1)); case 10: executionTime = formatRuntime(Date.now() - startTime); console.log(_chalk2.default.green('Success') + (' (' + executionTime + ')')); return _context.abrupt('return', process.exit(0)); case 13: case 'end': return _context.stop(); } } }, _callee, this, [[0, 5]]); })); function wrapAction() { return _ref.apply(this, arguments); } return wrapAction; }(); }