UNPKG

transition-manager

Version:

Transition Manager. Framework independent transition manager to transition elements using states and actions.

81 lines (71 loc) 1.99 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); /** * Deffer the promise * @return {object} { resolve : function, reject : function } */ exports.Deferred = Deferred; /** * create a facad for es6-promise all * ovrridden facad to display error logs for development * due to es6-promise error suppression issue * @param {array} promises * @return {function} */ exports.all = all; var _es6Promise = require('es6-promise'); /** * Promise facad object * creates a facad for application promises, * detatches feom the library being used to serve promises to the app * @type {Object} */ var PromiseFacade = {}; function Deferred() { var result = {}; result.promise = new _es6Promise.Promise(function (resolve, reject) { result.resolve = resolve; result.reject = reject; }); return result; } function all() { var _arguments = arguments; var externalError = undefined, error = function error(e) { console.error(' --- PROMISE CAUGHT ERROR --- ', _arguments[0].stack, e); if (externalError) { externalError('es6-promise all error ', _arguments[0].stack, e); } }; return (function () { var all = _es6Promise.Promise.all(_arguments[0]); return { then: function then() { externalError = arguments[1]; all.then(arguments[0])['catch'](error); } }; })(arguments); } /** * return object getters * * - all - checks to see if all promises has completed before continuing * - Promise - returns a Promise * - Deferred - returns an un resolved promise and an object with the resolve and reject functions * @return {function} [description] */ Object.defineProperty(PromiseFacade, 'all', { get: function get() { return all; } }); Object.defineProperty(PromiseFacade, 'Promise', { get: function get() { return _es6Promise.Promise; } }); Object.defineProperty(PromiseFacade, 'Deferred', { get: function get() { return Deferred; } }); /* export defaults */ exports['default'] = PromiseFacade;