import { join } from 'path'; import { readFile } from 'fs/promises'; import { FactoryProvider, ValueProvider } from '@nestjs/common'; export const secretsProviders = [ { provide: 'PRIVATE_PATH', useValue: join(process.cwd(), 'private'), } as ValueProvider, { provide: 'JWT_PRIVATE_KEY', useFactory: async (path: string) => readFile(join(path, 'jwt.private.pem')), inject: ['PRIVATE_PATH'], } as FactoryProvider, { provide: 'JWT_PUBLIC_KEY', useFactory: async (path: string) => readFile(join(path, 'jwt.public.pem')), inject: ['PRIVATE_PATH'], } as FactoryProvider, { provide: 'JWT_JWKS', useFactory: async (path: string) => JSON.parse( await readFile(join(path, 'jwks.json'), { encoding: 'utf-8' }), ), inject: ['PRIVATE_PATH'], } as FactoryProvider>, ];