openapi3-ts
Version:
TS Model & utils for OpenAPI 3.x specification.
1 lines • 5.23 kB
Source Map (JSON)
{"version":3,"file":"server-qOUqr--r.mjs","names":[],"sources":["../src/model/specification-extension.ts","../src/model/oas-common.ts","../src/model/server.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n// Support for Specification Extensions\n// as described in\n// https://github.com/OAI/OpenAPI-Specification/blob/3.0.0-rc0/versions/3.0.md#specificationExtensions\n\n// Specification Extensions\n// ^x-\nexport type IExtensionName = `x-${string}`;\nexport type IExtensionType = any;\nexport type ISpecificationExtension = {\n [extensionName: IExtensionName]: IExtensionType;\n};\n\nexport class SpecificationExtension implements ISpecificationExtension {\n [extensionName: IExtensionName]: any;\n\n static isValidExtension(extensionName: string): boolean {\n return /^x-/.test(extensionName);\n }\n\n getExtension(extensionName: string): any {\n if (!SpecificationExtension.isValidExtension(extensionName)) {\n throw new Error(\n `Invalid specification extension: '${extensionName}'. Extensions must start with prefix 'x-`\n );\n }\n if (this[extensionName as IExtensionName]) {\n return this[extensionName as IExtensionName];\n }\n return null;\n }\n addExtension(extensionName: string, payload: any): void {\n if (!SpecificationExtension.isValidExtension(extensionName)) {\n throw new Error(\n `Invalid specification extension: '${extensionName}'. Extensions must start with prefix 'x-`\n );\n }\n this[extensionName as IExtensionName] = payload;\n }\n listExtensions(): string[] {\n const res: string[] = [];\n for (const propName in this) {\n if (Object.prototype.hasOwnProperty.call(this, propName)) {\n if (SpecificationExtension.isValidExtension(propName)) {\n res.push(propName);\n }\n }\n }\n return res;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport {\n IExtensionName,\n ISpecificationExtension,\n SpecificationExtension\n} from './specification-extension';\n\nexport interface ServerObject extends ISpecificationExtension {\n url: string;\n description?: string;\n variables?: { [v: string]: ServerVariableObject };\n}\nexport interface ServerVariableObject extends ISpecificationExtension {\n enum?: string[] | boolean[] | number[];\n default: string | boolean | number;\n description?: string;\n}\n\nexport function getExtension(obj: ISpecificationExtension | undefined, extensionName: string): any {\n if (!obj) {\n return undefined;\n }\n if (SpecificationExtension.isValidExtension(extensionName)) {\n return obj[extensionName as IExtensionName];\n }\n return undefined;\n}\nexport function addExtension(\n obj: ISpecificationExtension | undefined,\n extensionName: string,\n extension: any\n): void {\n if (obj && SpecificationExtension.isValidExtension(extensionName)) {\n obj[extensionName as IExtensionName] = extension;\n }\n}\n","import { ServerObject, ServerVariableObject } from './oas-common';\nimport { IExtensionName, IExtensionType } from './specification-extension';\n\n// Server & Server Variable\nexport class Server implements ServerObject {\n url: string;\n description?: string;\n variables: { [v: string]: ServerVariable };\n [k: IExtensionName]: IExtensionType;\n\n constructor(url: string, desc?: string) {\n this.url = url;\n this.description = desc;\n this.variables = {};\n }\n addVariable(name: string, variable: ServerVariable): void {\n this.variables[name] = variable;\n }\n}\n\nexport class ServerVariable implements ServerVariableObject {\n enum?: string[] | boolean[] | number[];\n default: string | boolean | number;\n description?: string;\n [k: IExtensionName]: IExtensionType;\n\n constructor(\n defaultValue: string | boolean | number,\n enums?: string[] | boolean[] | number[],\n description?: string\n ) {\n this.default = defaultValue;\n this.enum = enums;\n this.description = description;\n }\n}\n"],"mappings":";;;;;;;;GAca,IAAb,MAAa,EAA0D;CAGnE,OAAO,iBAAiB,GAAgC;EACpD,OAAO,MAAM,KAAK,CAAa;CACnC;CAEA,aAAa,GAA4B;EACrC,IAAI,CAAC,EAAuB,iBAAiB,CAAa,GACtD,MAAU,MACN,qCAAqC,EAAc,yCACvD;EAKJ,OAHI,KAAK,KACE,KAAK,KAET;CACX;CACA,aAAa,GAAuB,GAAoB;EACpD,IAAI,CAAC,EAAuB,iBAAiB,CAAa,GACtD,MAAU,MACN,qCAAqC,EAAc,yCACvD;EAEJ,KAAK,KAAmC;CAC5C;CACA,iBAA2B;EACvB,IAAM,IAAgB,CAAC;EACvB,KAAK,IAAM,KAAY,MACnB,AAAI,OAAO,UAAU,eAAe,KAAK,MAAM,CAAQ,KAC/C,EAAuB,iBAAiB,CAAQ,KAChD,EAAI,KAAK,CAAQ;EAI7B,OAAO;CACX;AACJ;;;AChCA,SAAgB,EAAa,GAA0C,GAA4B;CAC1F,SAGD,EAAuB,iBAAiB,CAAa,GACrD,OAAO,EAAI;AAGnB;AACA,SAAgB,EACZ,GACA,GACA,GACI;CACJ,AAAI,KAAO,EAAuB,iBAAiB,CAAa,MAC5D,EAAI,KAAmC;AAE/C;;;AChCA,IAAa,IAAb,MAA4C;CAMxC,YAAY,GAAa,GAAe;EAGpC,AAFA,KAAK,MAAM,GACX,KAAK,cAAc,GACnB,KAAK,YAAY,CAAC;CACtB;CACA,YAAY,GAAc,GAAgC;EACtD,KAAK,UAAU,KAAQ;CAC3B;AACJ,GAEa,IAAb,MAA4D;CAMxD,YACI,GACA,GACA,GACF;EAGE,AAFA,KAAK,UAAU,GACf,KAAK,OAAO,GACZ,KAAK,cAAc;CACvB;AACJ"}