@elgervb/mock-data
Version:
Mock data made easy, while maintaining type safety
42 lines • 1.45 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generate = void 0;
var transform_1 = require("./transform");
/**
* Generate a mock from a blueprint
*/
function generate(blueprint, withDefaults) {
var mock = Object.create(null);
var allKeys = Array.from(new Set(Object.keys(blueprint).concat(Object.keys(__assign({}, withDefaults)))));
allKeys.forEach(function (key) {
var _a;
var value;
if (withDefaults) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
value = withDefaults[key];
}
// otherwise, use the generator
if (value === undefined) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
var generator = blueprint[key];
value = generator();
}
Object.assign(mock, (_a = {}, _a[key] = value, _a));
});
return (0, transform_1.transform)(mock);
}
exports.generate = generate;
//# sourceMappingURL=mock.js.map
;