barkey/packages/backend/src/server/api/EndpointsModule.ts
anatawa12 8d7b1f285f
refactor: Refactor Endpoints to improve Developer Experience for adding Endpoints (#15301)
* chore: reorder endpoints to lexicographic code unit order

* refactor: import endpoints in one module and use them for generating EndpointsModule and endpoints
2025-01-20 12:15:23 +00:00

30 lines
787 B
TypeScript

/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { Module } from '@nestjs/common';
import { CoreModule } from '@/core/CoreModule.js';
import * as endpointsObject from './endpoint-list.js';
import { GetterService } from './GetterService.js';
import { ApiLoggerService } from './ApiLoggerService.js';
import type { Provider } from '@nestjs/common';
const endpoints = Object.entries(endpointsObject);
const endpointProviders = endpoints.map(([path, endpoint]): Provider => ({ provide: `ep:${path}`, useClass: endpoint.default }));
@Module({
imports: [
CoreModule,
],
providers: [
GetterService,
ApiLoggerService,
...endpointProviders,
],
exports: [
...endpointProviders,
],
})
export class EndpointsModule {}