UNPKG

@websolute/faker.ts

Version:

Easy to Use, Powered by Decorators, Faker.js TypeScript Wrapper

65 lines 2.77 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.ClassProcessor = void 0; var callback_value_handler_1 = require("./handlers/callback-value-handler"); var object_literal_value_handler_1 = require("./handlers/object-literal-value-handler"); var enum_value_handler_1 = require("./handlers/enum-value-handler"); var array_value_handler_1 = require("./handlers/array-value-handler"); var single_class_value_handler_1 = require("./handlers/single-class-value-handler"); var primitive_value_handler_1 = require("./handlers/primitive-value-handler"); var ClassProcessor = /** @class */ (function () { function ClassProcessor(faker, reflector, locale) { this.faker = faker; this.reflector = reflector; this.faker.setLocale(locale); } ClassProcessor.prototype.handlePropertyValue = function (propertyDto) { for (var _i = 0, _a = ClassProcessor.VALUE_INSPECTORS; _i < _a.length; _i++) { var inspectorClass = _a[_i]; var inspector = new inspectorClass(this.faker, this); if (inspector.shouldHandle(propertyDto)) { return inspector.produceValue(propertyDto); } } }; /** * Return an object from the target class with all the properties * decorated by the 'Fixture' Decorator * * @param target */ ClassProcessor.prototype.process = function (target) { var _this = this; if (!target) { throw new Error("Target class '" + target + "' is 'undefined'"); } var classReflection = this.reflector.reflectClass(target); return classReflection.reduce(function (acc, val) { var _a; return __assign(__assign({}, acc), (_a = {}, _a[val.name] = _this.handlePropertyValue(val), _a)); }, {}); }; ClassProcessor.VALUE_INSPECTORS = [ enum_value_handler_1.EnumValueHandler, array_value_handler_1.ArrayValueHandler, single_class_value_handler_1.SingleClassValueHandler, callback_value_handler_1.CallbackValueHandler, object_literal_value_handler_1.ObjectLiteralValueHandler, primitive_value_handler_1.PrimitiveValueHandler, ]; ClassProcessor.DEFAULT_LOCALE = 'en'; return ClassProcessor; }()); exports.ClassProcessor = ClassProcessor; //# sourceMappingURL=class-processor.js.map