frontend/.pnpm-store/v3/files/b4/9f418381f9b0ad93ee75051fe0d41b5e2a95d259e2189815b5a3161cedd7048b7d480b5f8d16a287b3cdce3f125b212b7f32cc320d975f196fce887ac27b21

25 lines
706 B
Plaintext

"use strict";
var ensurePlainFunction = require("../../../object/ensure-plain-function")
, isThenable = require("../../../object/is-thenable")
, ensureThenable = require("../../../object/ensure-thenable");
var resolveCallback = function (callback, next) {
var callbackResult = callback();
if (!isThenable(callbackResult)) return next();
return callbackResult.then(next);
};
module.exports = function (callback) {
ensureThenable(this);
ensurePlainFunction(callback);
return this.then(
function (result) {
return resolveCallback(callback, function () { return result; });
},
function (error) {
return resolveCallback(callback, function () { throw error; });
}
);
};