UNPKG

@nestia/sdk

Version:

Nestia SDK and Swagger generator

98 lines (90 loc) 3.01 kB
import { INestiaConfig } from "@nestia/sdk"; import { Module } from "@nestjs/common"; import { NestFactory } from "@nestjs/core"; // import { FastifyAdapter } from "@nestjs/platform-fastify"; export const NESTIA_CONFIG: INestiaConfig = { /** * Accessor of controller classes. * * You can specify it within two ways. * * - Asynchronous function returning `INestApplication` instance * - Specify the path or directory of controller class files */ // input: "src/controllers", // input: "src/**/*.controller.ts", input: async () => { // change this to your own module @Module({ controllers: [], }) class MyModule {} const app = await NestFactory.create(MyModule); // const app = await NestFactory.create(YourModule, new FastifyAdapter()); // app.setGlobalPrefix("api"); // app.enableVersioning({ // type: VersioningType.URI, // prefix: "v", // }) return app; }, /** * Building `swagger.json` is also possible. * * If not specified, you can't build the `swagger.json`. */ swagger: { /** * Output path of the `swagger.json`. * * If you've configured only directory, the file name would be the `swagger.json`. * Otherwise you've configured the full path with file name and extension, the * `swagger.json` file would be renamed to it. */ output: "dist/swagger.json", }, /** * Output directory that SDK would be placed in. * * If not configured, you can't build the SDK library. */ output: "src/api", /** * Target directory that SDK distribution files would be placed in. * * If you configure this property and runs `npx nestia sdk` command, * distribution environments for the SDK library would be generated. * * After the SDK library generation, move to the `distribute` directory, * and runs `npm publish` command, then you can share SDK library with * other client (frontend) developers. */ // distribute: "packages/api", /** * Whether to use propagation mode or not. * * If being configured, interaction functions of the SDK library would * perform the propagation mode. The propagation mode means that never * throwing exception even when status code is not 200 (or 201), but just * returning the {@link IPropagation} typed instance, which can specify its body * type through discriminated union determined by status code. * * @default false */ // propagate: true, /** * Allow simulation mode. * * If you configure this property to be `true`, the SDK library would be contain * simulation mode. In the simulation mode, the SDK library would not communicate * with the real backend server, but just returns random mock-up data * with requestion data validation. * * For reference, random mock-up data would be generated by `typia.random<T>()` * function. * * @default false */ // simulate: true, }; export default NESTIA_CONFIG;