kindagoose
Version:
Integrate Typegoose with NestJS!
37 lines • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createModelProviders = void 0;
const core_1 = require("@nestjs/core");
const discriminator_factory_1 = require("./discriminator-factory");
const get_connection_token_1 = require("./get-connection-token");
const get_model_token_1 = require("./get-model-token");
const model_factory_1 = require("./model-factory");
const createModelProviders = (schemas, connectionName) => {
const providers = [];
for (const schema of schemas) {
const modelToken = (0, get_model_token_1.getModelToken)(schema.schema.name, connectionName);
providers.push({
provide: modelToken,
inject: [(0, get_connection_token_1.getConnectionToken)(connectionName), core_1.DiscoveryService, core_1.Reflector, core_1.MetadataScanner],
useFactory: (0, model_factory_1.modelFactory)(schema.schema, connectionName),
});
if (schema.discriminators) {
for (const discriminator of schema.discriminators) {
providers.push({
provide: (0, get_model_token_1.getModelToken)(discriminator.name, connectionName),
inject: [
(0, get_connection_token_1.getConnectionToken)(connectionName),
modelToken,
core_1.DiscoveryService,
core_1.Reflector,
core_1.MetadataScanner,
],
useFactory: (0, discriminator_factory_1.discriminatorFactory)(discriminator, connectionName),
});
}
}
}
return providers;
};
exports.createModelProviders = createModelProviders;
//# sourceMappingURL=create-model-providers.js.map