UNPKG

@namecheap/tsoa-cli

Version:

Build swagger-compliant REST APIs using TypeScript and Node

45 lines (44 loc) 1.83 kB
#!/usr/bin/env node import { Config, RoutesConfig, SpecConfig, Tsoa } from '@namecheap/tsoa-runtime'; import { AbstractRouteGenerator } from './routeGeneration/routeGenerator'; export interface ExtendedSpecConfig extends SpecConfig { entryFile: Config['entryFile']; noImplicitAdditionalProperties: Exclude<Config['noImplicitAdditionalProperties'], undefined>; controllerPathGlobs?: Config['controllerPathGlobs']; } export declare const validateSpecConfig: (config: Config) => Promise<ExtendedSpecConfig>; type RouteGeneratorImpl = new (metadata: Tsoa.Metadata, options: ExtendedRoutesConfig) => AbstractRouteGenerator<any>; export interface ExtendedRoutesConfig extends RoutesConfig { entryFile: Config['entryFile']; noImplicitAdditionalProperties: Exclude<Config['noImplicitAdditionalProperties'], undefined>; bodyCoercion: Exclude<RoutesConfig['bodyCoercion'], undefined>; controllerPathGlobs?: Config['controllerPathGlobs']; multerOpts?: Config['multerOpts']; rootSecurity?: Config['spec']['rootSecurity']; routeGenerator?: string | RouteGeneratorImpl; } export interface ConfigArgs { basePath?: string; configuration?: string | Config; } export interface SwaggerArgs extends ConfigArgs { host?: string; json?: boolean; yaml?: boolean; } export declare function runCLI(): { [x: string]: unknown; _: (string | number)[]; $0: string; } | Promise<{ [x: string]: unknown; _: (string | number)[]; $0: string; }>; export declare function generateSpecAndRoutes(args: SwaggerArgs, metadata?: Tsoa.Metadata): Promise<Tsoa.Metadata>; export type RouteGeneratorModule<Config extends ExtendedRoutesConfig> = { default: new (metadata: Tsoa.Metadata, routesConfig: Config) => { GenerateCustomRoutes: () => Promise<void>; }; }; export {};