@websolute/faker.ts
Version:
Easy to Use, Powered by Decorators, Faker.js TypeScript Wrapper
65 lines • 2.77 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.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