@helpscout/helix
Version:
A Faker-powered fixture generator for Javascript
43 lines (36 loc) • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _lodash = require("lodash");
/**
* Recursively renders faker methods. This function is used in the
* faker.computed method.
*
* @param object $faker Faker class/object
* @param object $props Faker values to render
* @param number $seedValue Seed value for Faker
*
* @returns object
*/
var makeComposedProps = function makeComposedProps(faker) {
return function (props, seedValue) {
return (0, _lodash.mapValues)(props, function (value, key) {
if ((0, _lodash.isPlainObject)(value)) {
return makeComposedProps(faker)(value, seedValue);
}
if ((0, _lodash.isArray)(value)) {
return value.map(function (val) {
return makeComposedProps(faker)(val, seedValue);
});
}
if (seedValue) {
faker.seed(seedValue);
}
return (0, _lodash.isFunction)(value) ? value() : value;
});
};
};
var _default = makeComposedProps;
exports.default = _default;