UNPKG

moltres-utils

Version:
70 lines (61 loc) 1.81 kB
"use strict"; require("core-js/modules/es6.object.define-property"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _curryN = _interopRequireDefault(require("../common/curryN")); var _defn = _interopRequireDefault(require("../common/defn")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Walk using the given walkee and iteratee functions. * * @function * @since v0.0.4 * @category data * @sig * @param {Function} walkee The function responsible for returning the next value in the walk * @param {Function} iteratee The iterator function. * @returns {*} The final value returned by the walk * @example * * const depthFirstWalkee = (value, iteratee, recur) => { * if (isObject(value)) { * forEachObjIndexed((child) => { * recur(child, iteratee) * }, value) * } * iteratee(value, data) * } * let result = [] * walk( * depthFirstWalkee, * (value) => result.push(value), * { * a: { * b: 'b' * } * } * ) * console.log(result) * //=> [ * 'b', * { b: 'b' }, * { a: { b: 'b' } } * ] */ var walk = (0, _curryN.default)(3, (0, _defn.default)('walk', function (walkee, iteratee) { var walker = function walker() { for (var _len2 = arguments.length, pass = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { pass[_key2] = arguments[_key2]; } return walkee.apply(void 0, pass.concat([walker])); }; for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { args[_key - 2] = arguments[_key]; } return walkee.apply(void 0, args.concat([iteratee, walker])); })); var _default = walk; exports.default = _default; //# sourceMappingURL=walk.js.map