UNPKG

typeorm-faker

Version:

Generate mocks, stubs using fakers with your Entity Settings

76 lines (74 loc) 3.09 kB
"use strict"; 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