@nestjs-mod/prisma
Version:
Next-generation Node.js and TypeScript ORM for NestJS-mod (preview version only for Postgres)
78 lines • 4.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrismaModule = void 0;
const common_1 = require("@nestjs-mod/common");
const prisma_infrastructure_updater_service_1 = require("./infrastructure/prisma-infrastructure-updater.service");
const prisma_schema_file_service_1 = require("./infrastructure/prisma-schema-file.service");
const prisma_client_factory_service_1 = require("./prisma_client-factory.service");
const prisma_configuration_1 = require("./prisma.configuration");
const prisma_constants_1 = require("./prisma.constants");
const prisma_environments_1 = require("./prisma.environments");
const prisma_decorators_1 = require("./prisma.decorators");
exports.PrismaModule = (0, common_1.createNestModule)({
moduleName: prisma_constants_1.PRISMA_MODULE_NAME,
moduleCategory: common_1.NestModuleCategory.core,
moduleDescription: 'Next-generation Node.js and TypeScript ORM for NestJS-mod (preview version only for Postgres)',
staticConfigurationModel: prisma_configuration_1.PrismaConfiguration,
environmentsModel: prisma_environments_1.PrismaEnvironments,
sharedProviders: () => [
prisma_client_factory_service_1.PrismaClientFactoryService,
{
provide: prisma_decorators_1.PRISMA_CLIENT,
useFactory: (prismaClientFactoryService) => {
return prismaClientFactoryService.createPrismaClient();
},
inject: [prisma_client_factory_service_1.PrismaClientFactoryService],
},
],
wrapForRootAsync: (asyncModuleOptions) => {
if (!asyncModuleOptions) {
asyncModuleOptions = {};
}
if (asyncModuleOptions.staticConfiguration?.featureName) {
const FomatterClass = (0, common_1.getFeatureDotEnvPropertyNameFormatter)(asyncModuleOptions.staticConfiguration.featureName);
Object.assign(asyncModuleOptions, {
environmentsOptions: {
propertyNameFormatters: [new FomatterClass()],
name: asyncModuleOptions.staticConfiguration?.featureName,
},
});
}
return { asyncModuleOptions };
},
preWrapApplication: async ({ project, modules, current }) => {
if (!modules[common_1.NestModuleCategory.infrastructure]) {
modules[common_1.NestModuleCategory.infrastructure] = [];
}
modules[common_1.NestModuleCategory.infrastructure].push((0, common_1.createNestModule)({
project,
moduleName: prisma_constants_1.PRISMA_MODULE_NAME,
moduleDescription: 'Next-generation Node.js and TypeScript ORM for NestJS-mod (preview version only for Postgres)',
staticConfigurationModel: prisma_configuration_1.PrismaConfiguration,
environmentsModel: prisma_environments_1.PrismaEnvironments,
wrapForRootAsync: (asyncModuleOptions) => {
if (!asyncModuleOptions) {
asyncModuleOptions = {};
}
if (asyncModuleOptions.staticConfiguration?.featureName) {
const FomatterClass = (0, common_1.getFeatureDotEnvPropertyNameFormatter)(asyncModuleOptions.staticConfiguration.featureName);
Object.assign(asyncModuleOptions, {
environmentsOptions: {
propertyNameFormatters: [new FomatterClass()],
name: asyncModuleOptions.staticConfiguration?.featureName,
},
});
}
return { asyncModuleOptions };
},
imports: [
common_1.ProjectUtils.forFeature({
featureModuleName: prisma_constants_1.PRISMA_MODULE_NAME,
contextName: current.asyncModuleOptions.contextName,
}),
],
providers: [prisma_schema_file_service_1.PrismaSchemaFileService, prisma_infrastructure_updater_service_1.PrismaInfrastructureUpdaterService],
}).PrismaModule.forRootAsync(current.asyncModuleOptions));
},
}).PrismaModule;
//# sourceMappingURL=prisma.module.js.map