UNPKG

typeorm-stubs

Version:
53 lines 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Stub = void 0; const typeorm_1 = require("typeorm"); const parser_1 = require("./parser"); const generator_1 = require("./generator"); const type_guards_1 = require("./type-guards"); const constants_1 = require("./constants"); const utils_1 = require("./utils"); /** * Stub creator. * */ class Stub { /** * If you want to override the behavior of some Generator methods, * pass a class that implements the "StubGenerator" interface. * */ constructor(generator) { this.generator = generator_1.Generator.getInstance(); if (generator) { constants_1.STUB_GENERATOR_METHODS.forEach((method) => { if ((0, type_guards_1.isFunction)(generator[method])) { Reflect.set(this.generator, method, generator[method]); } }); } this.parser = parser_1.Parser.getInstance(this.generator); } createOne(entity, options = constants_1.DEFAULT_STUB_OPTIONS) { const stub = new entity(); const metadataStorage = (0, typeorm_1.getMetadataArgsStorage)(); if (!(0, type_guards_1.isNotNull)(metadataStorage)) return stub; const addedRelations = []; const parent = (0, utils_1.getParentClass)(entity); if (parent) { this.parser.parseMetadata(stub, parent, metadataStorage, addedRelations, options); } this.parser.parseMetadata(stub, entity, metadataStorage, addedRelations, options); return stub; } createMany(entity, countOrOptions, maybeOptions) { const count = (0, type_guards_1.isNumber)(countOrOptions) ? countOrOptions : this.generator.generateRandomNumber?.(constants_1.MIN_ARR_LENGTH, constants_1.MAX_ARR_LENGTH) ?? constants_1.MIN_ARR_LENGTH; const options = (0, type_guards_1.isNumber)(countOrOptions) ? maybeOptions : countOrOptions; return Array(count ?? constants_1.MIN_ARR_LENGTH) .fill('') .map(() => this.createOne(entity, options)); } } exports.Stub = Stub; //# sourceMappingURL=stub.js.map