monorepo/apps/api/src/options.ts

40 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-06-25 21:59:50 +08:00
import { NestFactory } from '@nestjs/core';
import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify';
import * as configs from '@/configs';
import { ConfigModule } from './modules/config/config.module';
2024-08-05 08:33:01 +08:00
2024-07-18 14:15:41 +08:00
import { forRoot } from './modules/content/content.module';
2024-06-25 21:59:50 +08:00
import { CreateOptions } from './modules/core/core.types';
2024-07-18 14:15:41 +08:00
import { DatabaseModule } from './modules/database/database.module';
import { meiliForRoot } from './modules/meilisearch/melli.module';
2024-08-19 10:13:50 +08:00
import { JwtAuthGuard } from './modules/user/guards/jwt-auth.guard';
2024-06-25 21:59:50 +08:00
export const createOptions: CreateOptions = {
config: { factories: configs as any, storage: { enabled: true } },
2024-08-05 08:33:01 +08:00
imports: async (configure) => {
2024-07-18 14:15:41 +08:00
return [
ConfigModule.forRoot(configure),
DatabaseModule.forRoot(configure),
2024-08-05 08:33:01 +08:00
forRoot(configure),
meiliForRoot(configure),
2024-07-18 14:15:41 +08:00
];
2024-06-25 21:59:50 +08:00
},
2024-08-19 10:13:50 +08:00
globals: {
guard: JwtAuthGuard,
},
2024-06-25 21:59:50 +08:00
builder: async ({ configure, BootModule }) => {
const app = await NestFactory.create<NestFastifyApplication>(
BootModule,
new FastifyAdapter(),
{
cors: true,
logger: ['error', 'warn'],
},
);
return app;
},
};