@namecheap/tsoa-cli
Version:
Build swagger-compliant REST APIs using TypeScript and Node
45 lines (44 loc) • 1.83 kB
TypeScript
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 {};