mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-16 09:36:17 +08:00
33 lines
746 B
TypeScript
33 lines
746 B
TypeScript
import './config';
|
|
|
|
import { Global, Module, Provider } from '@nestjs/common';
|
|
import { PrismaClient } from '@prisma/client';
|
|
|
|
import { Config } from '../config';
|
|
import { PrismaService } from './service';
|
|
|
|
// only `PrismaClient` can be injected
|
|
const clientProvider: Provider = {
|
|
provide: PrismaClient,
|
|
useFactory: (config: Config) => {
|
|
if (PrismaService.INSTANCE) {
|
|
return PrismaService.INSTANCE;
|
|
}
|
|
|
|
return new PrismaService(config.prisma);
|
|
},
|
|
inject: [Config],
|
|
};
|
|
|
|
@Global()
|
|
@Module({
|
|
providers: [clientProvider],
|
|
exports: [clientProvider],
|
|
})
|
|
export class PrismaModule {}
|
|
export { PrismaService } from './service';
|
|
|
|
export type PrismaTransaction = Parameters<
|
|
Parameters<PrismaClient['$transaction']>[0]
|
|
>[0];
|