UNPKG

@develohpanda/fluent-builder

Version:

A typed, fluent builder for creating objects in Typescript

50 lines 1.51 kB
"use strict"; 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.createBuilder = void 0; var fromSchema = function (schema) { var result = {}; for (var key in schema) { if (schema.hasOwnProperty(key)) { result[key] = schema[key](); } } return result; }; exports.createBuilder = function (schema) { var internalSchema = __assign({}, schema); var mutator = {}; var _loop_1 = function (key) { if (internalSchema.hasOwnProperty(key)) { mutator[key] = (function (v) { internalSchema[key] = function () { return v; }; return mutator; }); } }; for (var key in internalSchema) { _loop_1(key); } var builder = mutator; builder.build = function () { return fromSchema(internalSchema); }; builder.reset = function () { for (var key in schema) { if (schema.hasOwnProperty(key)) { internalSchema[key] = schema[key]; } } return builder; }; return builder; }; //# sourceMappingURL=index.js.map