UNPKG

@foal/core

Version:

Full-featured Node.js framework, with no complexity

119 lines (118 loc) 5.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApiDefineCallback = exports.ApiDefineLink = exports.ApiDefineSecurityScheme = exports.ApiDefineHeader = exports.ApiDefineRequestBody = exports.ApiDefineExample = exports.ApiDefineParameter = exports.ApiDefineResponse = exports.ApiDefineSchema = exports.ApiDeprecated = exports.ApiCallback = exports.ApiResponse = exports.ApiRequestBody = exports.ApiParameter = exports.ApiUseTag = exports.ApiOperation = exports.ApiExternalDoc = exports.ApiDefineTag = exports.ApiSecurityRequirement = exports.ApiServer = exports.ApiOperationSummary = exports.ApiOperationId = exports.ApiOperationDescription = exports.ApiInfo = void 0; // 3p require("reflect-metadata"); function AddMetadataItem(metadataKey, item) { return (target, propertyKey) => { // Note that propertyKey can be undefined as it's an optional parameter in getMetadata. let items = Reflect.getMetadata(metadataKey, target, propertyKey) || []; items = [item, ...items]; Reflect.defineMetadata(metadataKey, items, target, propertyKey); }; } function AddMetadataProperty(metadataKey, key, property) { return (target, propertyKey) => { // Note that propertyKey can be undefined as it's an optional parameter in getMetadata. let o = Reflect.getMetadata(metadataKey, target, propertyKey) || {}; o = Object.assign({}, o); o[key] = property; Reflect.defineMetadata(metadataKey, o, target, propertyKey); }; } function ApiInfo(info) { return Reflect.metadata('api:document:info', info); } exports.ApiInfo = ApiInfo; function ApiOperationDescription(description) { return Reflect.metadata('api:operation:description', description); } exports.ApiOperationDescription = ApiOperationDescription; function ApiOperationId(operationId) { return Reflect.metadata('api:operation:operationId', operationId); } exports.ApiOperationId = ApiOperationId; function ApiOperationSummary(summary) { return Reflect.metadata('api:operation:summary', summary); } exports.ApiOperationSummary = ApiOperationSummary; function ApiServer(server) { return AddMetadataItem('api:documentOrOperation:servers', server); } exports.ApiServer = ApiServer; function ApiSecurityRequirement(securityRequirement) { return AddMetadataItem('api:documentOrOperation:security', securityRequirement); } exports.ApiSecurityRequirement = ApiSecurityRequirement; function ApiDefineTag(tag) { return AddMetadataItem('api:document:tags', tag); } exports.ApiDefineTag = ApiDefineTag; function ApiExternalDoc(externalDoc) { return Reflect.metadata('api:documentOrOperation:externalDocs', externalDoc); } exports.ApiExternalDoc = ApiExternalDoc; function ApiOperation(operation) { return Reflect.metadata('api:operation', operation); } exports.ApiOperation = ApiOperation; function ApiUseTag(tag) { return AddMetadataItem('api:operation:tags', tag); } exports.ApiUseTag = ApiUseTag; function ApiParameter(parameter) { return AddMetadataItem('api:operation:parameters', parameter); } exports.ApiParameter = ApiParameter; function ApiRequestBody(requestBody) { return Reflect.metadata('api:operation:requestBody', requestBody); } exports.ApiRequestBody = ApiRequestBody; function ApiResponse(key, response) { return AddMetadataProperty('api:operation:responses', key.toString(), response); } exports.ApiResponse = ApiResponse; function ApiCallback(key, callback) { return AddMetadataProperty('api:operation:callbacks', key, callback); } exports.ApiCallback = ApiCallback; function ApiDeprecated(deprecated = true) { return Reflect.metadata('api:operation:deprecated', deprecated); } exports.ApiDeprecated = ApiDeprecated; function ApiDefineSchema(key, schema) { return AddMetadataProperty('api:components:schemas', key, schema); } exports.ApiDefineSchema = ApiDefineSchema; function ApiDefineResponse(key, response) { return AddMetadataProperty('api:components:responses', key, response); } exports.ApiDefineResponse = ApiDefineResponse; function ApiDefineParameter(key, parameter) { return AddMetadataProperty('api:components:parameters', key, parameter); } exports.ApiDefineParameter = ApiDefineParameter; function ApiDefineExample(key, example) { return AddMetadataProperty('api:components:examples', key, example); } exports.ApiDefineExample = ApiDefineExample; function ApiDefineRequestBody(key, requestBody) { return AddMetadataProperty('api:components:requestBodies', key, requestBody); } exports.ApiDefineRequestBody = ApiDefineRequestBody; function ApiDefineHeader(key, header) { return AddMetadataProperty('api:components:headers', key, header); } exports.ApiDefineHeader = ApiDefineHeader; function ApiDefineSecurityScheme(key, securityScheme) { return AddMetadataProperty('api:components:securitySchemes', key, securityScheme); } exports.ApiDefineSecurityScheme = ApiDefineSecurityScheme; function ApiDefineLink(key, link) { return AddMetadataProperty('api:components:links', key, link); } exports.ApiDefineLink = ApiDefineLink; function ApiDefineCallback(key, callback) { return AddMetadataProperty('api:components:callbacks', key, callback); } exports.ApiDefineCallback = ApiDefineCallback;