moltres-utils
Version:
Utils for Moltres apps
80 lines (66 loc) • 1.93 kB
JavaScript
require("core-js/modules/es6.object.define-property");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.baseResolve = exports.default = void 0;
var _isResolved = require("./isResolved");
var _resolveToGenerator = require("./resolveToGenerator");
var _curry = _interopRequireDefault(require("./curry"));
var _isFunction = _interopRequireDefault(require("../lang/isFunction"));
var _isPromise = _interopRequireDefault(require("../lang/isPromise"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var baseResolve = function baseResolve(value) {
if (!(0, _isResolved.baseIsResolved)(value)) {
if ((0, _isFunction.default)(value.resolve)) {
return baseResolve(value.resolve());
}
if ((0, _isPromise.default)(value)) {
return value.then(function (resolved) {
return baseResolve(resolved);
});
}
return (0, _resolveToGenerator.baseResolveToGenerator)(value);
}
return value;
};
/**
* Resolves a value to its valueOf.
*
* Dispatches to the `resolve` method if it exists. If a resolve method returns a value that is also resolvable, this method will resolve that value as well.
*
* @function
* @since v0.0.9
* @category common
* @sig [String] -> {a} -> String
* @param {...String} values The values to check.
* @returns {String} The first value found that is a path.
* @example
*
* resolve('foo') // => 'foo'
*
* resolve({
* valueOf: () => 'bar'
* }) //=> bar
*
* resolve({
* resolve: () => 'bar'
* }) //=> bar
*
* resolve({
* resolve: () => ({
* valueOf: () => 'bar'
* })
* }) //=> bar
*
* resolve({
* resolve: () => ({
* resolve: () => 'bar'
* })
* }) //=> bar
*/
exports.baseResolve = baseResolve;
var resolve = (0, _curry.default)(baseResolve);
var _default = resolve;
exports.default = _default;
//# sourceMappingURL=resolve.js.map
;