serverless-offline-msk
Version:
A serverless offline plugin that enables AWS MSK events
45 lines (41 loc) • 986 B
JavaScript
// 'aside' - Promise extension
//
// promise.aside(win, fail)
//
// Works in analogous way as promise function itself (or `then`)
// but instead of adding promise to promise chain it returns context promise and
// lets callback carry on with other processing logic
;
var isValue = require("es5-ext/object/is-value")
, callable = require("es5-ext/object/valid-callable")
, deferred = require("../../deferred");
deferred.extend(
"aside",
function (win, fail) {
if (isValue(win)) callable(win);
if (isValue(fail)) callable(fail);
if (win || fail) {
if (!this.pending) {
this.pending = [];
}
this.pending.push("aside", arguments);
}
return this;
},
function (win, fail) {
var cb = this.failed ? fail : win;
if (cb) {
cb(this.value);
}
},
function (win, fail) {
var cb;
if (isValue(win)) callable(win);
if (isValue(fail)) callable(fail);
cb = this.failed ? fail : win;
if (cb) {
cb(this.value);
}
return this;
}
);