moltres-utils
Version:
Utils for Moltres apps
80 lines (62 loc) • 2.22 kB
JavaScript
require("core-js/modules/es6.object.define-property");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.baseResolveWith = exports.default = void 0;
var _isOp = require("./isOp");
var _isResolved = require("./isResolved");
var _resolve = require("./resolve");
var _resolveToGeneratorWith = require("./resolveToGeneratorWith");
var _curry = _interopRequireDefault(require("./curry"));
var _isGenerator = _interopRequireDefault(require("../lang/isGenerator"));
var _isPromise = _interopRequireDefault(require("../lang/isPromise"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var baseResolveWith = function baseResolveWith(fn, value) {
if (!(0, _isResolved.baseIsResolved)(value)) {
if ((0, _isPromise.default)(value)) {
return value.then(function (resolved) {
return baseResolveWith(fn, resolved);
});
}
if ((0, _isGenerator.default)(value) || (0, _isOp.baseIsOp)(value)) {
return (0, _resolveToGeneratorWith.baseResolveToGeneratorWith)(fn, value);
}
value = (0, _resolve.baseResolve)(value);
}
value = fn(value);
if (!(0, _isResolved.baseIsResolved)(value)) {
return (0, _resolve.baseResolve)(value);
}
return value;
};
/**
* Resolves a value to the given method.
*
* If the value to be resolved is a promise then this method will return a promise. The fn method will be triggered once the promise resolves.
*
* If the value to be resolved is a generator, this method will return a generator.
*
* @function
* @since v0.0.11
* @category common
* @param {Function} fn The function to execute at the end of the resolution
* @param {*} value The value to resolve with the generator
* @returns {Generator}
* @example
*
* await resolveWith(
* (resolvedValue) => 'bar' // resolvedValue == 'foo'
* Promise.resolve('foo')
* ) //=> 'bar'
*
* resolveWith(
* (resolvedValue) => 'bar' // resolvedValue == 'foo'
* 'foo'
* ) //=> 'bar'
*/
exports.baseResolveWith = baseResolveWith;
var resolveWith = (0, _curry.default)(baseResolveWith);
var _default = resolveWith;
exports.default = _default;
//# sourceMappingURL=resolveWith.js.map
;