UNPKG

apeman-react-mixins

Version:
72 lines (57 loc) 4.29 kB
/** * Mixin for cycle. * @mixin ApCycleMixin */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _defaults = require('defaults'); var _defaults2 = _interopRequireDefault(_defaults); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var noop = function noop(values) { return values; }; var reject = function reject(err) { return Promise.reject(err); }; /** @lends ApCycleMixin */ var ApCycleMixin = { // -------------------- // Custom // -------------------- $apCycleMixed: true, /** * Execute something with cycle. * @param {string|number|object} params - Parameters. * @param {object} handlers - Fetch handlers. */ cycle: function cycle(params, handlers) { var s = this; (0, _defaults2.default)(handlers, { will: noop, do: noop, did: noop, catch: reject }); return Promise.resolve(params).then(function (params) { return handlers.will(params); }).then(function (params) { return handlers.do(params); }).then(function (result) { return handlers.did(result); }).catch(function (err) { return handlers.catch(err); }); } // -------------------- // Specs // -------------------- // -------------------- // Lifecycle // -------------------- }; exports.default = Object.freeze(ApCycleMixin); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX2N5Y2xlX21peGluLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBOzs7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFJLE9BQU8sU0FBUCxJQUFPLENBQUMsTUFBRDtBQUFBLFNBQVksTUFBWjtBQUFBLENBQVg7QUFDQSxJQUFJLFNBQVMsU0FBVCxNQUFTLENBQUMsR0FBRDtBQUFBLFNBQVMsUUFBUSxNQUFSLENBQWUsR0FBZixDQUFUO0FBQUEsQ0FBYjs7O0FBR0EsSUFBSSxlQUFlOzs7OztBQUtqQixpQkFBZSxJQUxFOzs7Ozs7O0FBWWpCLE9BWmlCLGlCQVlWLE1BWlUsRUFZRixRQVpFLEVBWVE7QUFDdkIsUUFBTSxJQUFJLElBQVY7QUFDQSw0QkFBUyxRQUFULEVBQW1CO0FBQ2pCLFlBQU0sSUFEVztBQUVqQixVQUFJLElBRmE7QUFHakIsV0FBSyxJQUhZO0FBSWpCLGFBQU87QUFKVSxLQUFuQjtBQU1BLFdBQU8sUUFDSixPQURJLENBQ0ksTUFESixFQUVKLElBRkksQ0FFQyxVQUFDLE1BQUQ7QUFBQSxhQUFZLFNBQVMsSUFBVCxDQUFjLE1BQWQsQ0FBWjtBQUFBLEtBRkQsRUFHSixJQUhJLENBR0MsVUFBQyxNQUFEO0FBQUEsYUFBWSxTQUFTLEVBQVQsQ0FBWSxNQUFaLENBQVo7QUFBQSxLQUhELEVBSUosSUFKSSxDQUlDLFVBQUMsTUFBRDtBQUFBLGFBQVksU0FBUyxHQUFULENBQWEsTUFBYixDQUFaO0FBQUEsS0FKRCxFQUtKLEtBTEksQ0FLRSxVQUFDLEdBQUQ7QUFBQSxhQUFTLFNBQVMsS0FBVCxDQUFlLEdBQWYsQ0FBVDtBQUFBLEtBTEYsQ0FBUDtBQU1EOzs7Ozs7Ozs7O0FBMUJnQixDQUFuQjs7a0JBc0NlLE9BQU8sTUFBUCxDQUFjLFlBQWQsQyIsImZpbGUiOiJhcF9jeWNsZV9taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvb2t1bmlzaGluaXNoaS9Qcm9qZWN0cy9hcGVtYW4tcHJvamVjdHMvYXBlbWFuLXJlYWN0LW1peGlucy9saWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1peGluIGZvciBjeWNsZS5cbiAqIEBtaXhpbiBBcEN5Y2xlTWl4aW5cbiAqL1xuXG4ndXNlIHN0cmljdCdcblxuaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzIGFzIHR5cGVzfSBmcm9tICdyZWFjdCdcbmltcG9ydCBkZWZhdWx0cyBmcm9tICdkZWZhdWx0cydcblxubGV0IG5vb3AgPSAodmFsdWVzKSA9PiB2YWx1ZXNcbmxldCByZWplY3QgPSAoZXJyKSA9PiBQcm9taXNlLnJlamVjdChlcnIpXG5cbi8qKiBAbGVuZHMgQXBDeWNsZU1peGluICovXG5sZXQgQXBDeWNsZU1peGluID0ge1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEN1c3RvbVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAkYXBDeWNsZU1peGVkOiB0cnVlLFxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHNvbWV0aGluZyB3aXRoIGN5Y2xlLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ8b2JqZWN0fSBwYXJhbXMgLSBQYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gaGFuZGxlcnMgLSBGZXRjaCBoYW5kbGVycy5cbiAgICovXG4gIGN5Y2xlIChwYXJhbXMsIGhhbmRsZXJzKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBkZWZhdWx0cyhoYW5kbGVycywge1xuICAgICAgd2lsbDogbm9vcCxcbiAgICAgIGRvOiBub29wLFxuICAgICAgZGlkOiBub29wLFxuICAgICAgY2F0Y2g6IHJlamVjdFxuICAgIH0pXG4gICAgcmV0dXJuIFByb21pc2VcbiAgICAgIC5yZXNvbHZlKHBhcmFtcylcbiAgICAgIC50aGVuKChwYXJhbXMpID0+IGhhbmRsZXJzLndpbGwocGFyYW1zKSlcbiAgICAgIC50aGVuKChwYXJhbXMpID0+IGhhbmRsZXJzLmRvKHBhcmFtcykpXG4gICAgICAudGhlbigocmVzdWx0KSA9PiBoYW5kbGVycy5kaWQocmVzdWx0KSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiBoYW5kbGVycy5jYXRjaChlcnIpKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BlY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBMaWZlY3ljbGVcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBPYmplY3QuZnJlZXplKEFwQ3ljbGVNaXhpbilcbiJdfQ==