UNPKG

@websolute/faker.ts

Version:

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

42 lines 1.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClassReflector = void 0; var reflect_1 = __importDefault(require("@plumier/reflect")); var fixture_decorator_1 = require("./decorators/fixture.decorator"); var ClassReflector = /** @class */ (function () { function ClassReflector() { } ClassReflector.prototype.extractDecoratedProperties = function (classReflection) { return classReflection.properties.map(function (property) { var value = ClassReflector.extractFixtureDecoratorValue(property); return ClassReflector.createPropertyDto(property, value); }); }; ClassReflector.createPropertyDto = function (property, fixtureDecoratorValue) { var name = property.name, constructorName = property.type.name; return { type: typeof fixtureDecoratorValue, value: fixtureDecoratorValue, name: name, constructorName: constructorName, }; }; ClassReflector.extractFixtureDecoratorValue = function (property) { var decorators = property.decorators; var fixtureDecorator = decorators.find(function (decorator) { return decorator.type === fixture_decorator_1.FIXTURE_DECORATOR_NAME; }); return fixtureDecorator.value; }; ClassReflector.prototype.reflectClass = function (target) { if (!ClassReflector.REFLECTED_CLASSES.hasOwnProperty(target.name)) { ClassReflector.REFLECTED_CLASSES[target.name] = this.extractDecoratedProperties(reflect_1.default(target)); } return ClassReflector.REFLECTED_CLASSES[target.name]; }; ClassReflector.REFLECTED_CLASSES = {}; return ClassReflector; }()); exports.ClassReflector = ClassReflector; //# sourceMappingURL=class-reflector.js.map