typeorm-faker
Version:
Generate mocks, stubs using fakers with your Entity Settings
76 lines (74 loc) • 3.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stubRawOne = exports.stubRaw = exports.stubQueryBuilder = exports.stubOne = exports.stub = void 0;
const class_transformer_1 = require("class-transformer");
const patcher_1 = require("./patcher");
const util_service_1 = require("./util.service");
const query_builder_stubber_1 = require("./query-builder-stubber");
class Stubber {
static stubOne(EntityClass, options, classTransformOptions) {
const fakeEntity = patcher_1.EntityPatcher.patch(EntityClass, classTransformOptions);
return (0, class_transformer_1.plainToInstance)(EntityClass, {
...fakeEntity,
...options
}, {
ignoreDecorators: true,
...classTransformOptions
});
}
static stub(EntityClass, count = 10, options, classTransformOptions) {
const stubs = Array(count)
.fill(0)
.map(() => Stubber.stubOne(EntityClass, options, classTransformOptions));
return stubs;
}
static stubRaw(EntityClass, count = 10, options) {
const stubRaws = Array(count)
.fill(0)
.map(() => Stubber.stubRawOne(EntityClass, options));
return stubRaws;
}
static stubRawOne(EntityClass, options) {
const className = EntityClass.name;
const fakeEntity = patcher_1.EntityPatcher.patch(EntityClass);
const convertedRawFakeEntity = {};
for (const property in fakeEntity) {
if (Object.prototype.hasOwnProperty.call(fakeEntity, property)) {
const uncapitalizedClassName = util_service_1.UtilService.uncapitalize(className);
const uncapitalizedProperty = property.replace(/([A-Z])/g, '_$1').toLowerCase();
const rawKey = (uncapitalizedClassName +
'_' +
uncapitalizedProperty);
convertedRawFakeEntity[rawKey] = fakeEntity[property];
}
}
Object.assign(convertedRawFakeEntity, {
...convertedRawFakeEntity,
...options
});
return convertedRawFakeEntity;
}
static stubQueryBuilder(sandbox, EntityClass, customStubOrStubs) {
let stubs = [];
const stubRaws = Stubber.stubRaw(EntityClass);
const defaultStubs = Stubber.stub(EntityClass);
if (customStubOrStubs && customStubOrStubs instanceof Array) {
stubs = customStubOrStubs;
}
else if (customStubOrStubs) {
stubs = [customStubOrStubs, ...defaultStubs];
}
else {
stubs = defaultStubs;
}
return Stubber.queryBuilderStubber._stubQueryBuilder(sandbox, stubs, stubRaws);
}
}
exports.default = Stubber;
Stubber.queryBuilderStubber = new query_builder_stubber_1.QueryBuilderStubber();
exports.stub = Stubber.stub;
exports.stubOne = Stubber.stubOne;
exports.stubQueryBuilder = Stubber.stubQueryBuilder;
exports.stubRaw = Stubber.stubRaw;
exports.stubRawOne = Stubber.stubRawOne;
//# sourceMappingURL=stubs.js.map