diff --git a/src/apispec.ts b/src/apispec.ts new file mode 100644 index 0000000..d6d4b7f --- /dev/null +++ b/src/apispec.ts @@ -0,0 +1,33 @@ +import { MetadataArgsStorage } from 'routing-controllers'; +import { routingControllersToSpec } from 'routing-controllers-openapi'; +import { config } from './config'; + +/** + * This function generates a the openapi spec from route metadata and type schemas. + * @param storage MetadataArgsStorage object generated by routing-controllers. + * @param schemas MetadataArgsStorage object generated by class-validator-jsonschema. + */ +export function generateSpec(storage: MetadataArgsStorage, schemas) { + return routingControllersToSpec( + storage, + {}, + { + components: { + schemas, + "securitySchemes": { + "AuthToken": { + "type": "apiKey", + "in": "query", + "name": "key", + description: "A simple api key. See the README's env section for more details." + } + } + }, + info: { + description: "The the API for the LfK! mailer.", + title: "LfK! mailer API", + version: config.version + }, + } + ); +} \ No newline at end of file