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