UNPKG

openapi-typescript

Version:

Convert OpenAPI 3.0 & 3.1 schemas to TypeScript

1 lines 2.96 kB
{"version":3,"file":"header-object.mjs","sources":["../../src/transform/header-object.ts"],"sourcesContent":["import { escapePointer } from \"@redocly/openapi-core/lib/ref-utils.js\";\nimport ts from \"typescript\";\nimport { addJSDocComment, tsModifiers, tsPropertyIndex, UNKNOWN } from \"../lib/ts.js\";\nimport { getEntries } from \"../lib/utils.js\";\nimport type { HeaderObject, TransformNodeOptions } from \"../types.js\";\nimport transformMediaTypeObject from \"./media-type-object.js\";\nimport transformSchemaObject from \"./schema-object.js\";\n\n/**\n * Transform HeaderObject nodes (4.8.21)\n * @see https://spec.openapis.org/oas/v3.1.0#header-object\n */\nexport default function transformHeaderObject(headerObject: HeaderObject, options: TransformNodeOptions): ts.TypeNode {\n if (headerObject.schema) {\n return transformSchemaObject(headerObject.schema, options);\n }\n\n if (headerObject.content) {\n const type: ts.TypeElement[] = [];\n for (const [contentType, mediaTypeObject] of getEntries(headerObject.content ?? {}, options.ctx)) {\n const nextPath = `${options.path ?? \"#\"}/${escapePointer(contentType)}`;\n const mediaType =\n \"$ref\" in mediaTypeObject\n ? transformSchemaObject(mediaTypeObject, {\n ...options,\n path: nextPath,\n })\n : transformMediaTypeObject(mediaTypeObject, {\n ...options,\n path: nextPath,\n });\n const property = ts.factory.createPropertySignature(\n /* modifiers */ tsModifiers({ readonly: options.ctx.immutable }),\n /* name */ tsPropertyIndex(contentType),\n /* questionToken */ undefined,\n /* type */ mediaType,\n );\n addJSDocComment(mediaTypeObject, property);\n type.push(property);\n }\n return ts.factory.createTypeLiteralNode(type);\n }\n\n return UNKNOWN;\n}\n"],"names":[],"mappings":";;;;;;;AAYA,SAAwB,qBAAA,CAAsB,cAA4B,OAAA,EAA4C;AACpH,EAAA,IAAI,aAAa,MAAA,EAAQ;AACvB,IAAA,OAAO,qBAAA,CAAsB,YAAA,CAAa,MAAA,EAAQ,OAAO,CAAA;AAAA,EAC3D;AAEA,EAAA,IAAI,aAAa,OAAA,EAAS;AACxB,IAAA,MAAM,OAAyB,EAAC;AAChC,IAAA,KAAA,MAAW,CAAC,WAAA,EAAa,eAAe,CAAA,IAAK,UAAA,CAAW,YAAA,CAAa,OAAA,IAAW,EAAC,EAAG,OAAA,CAAQ,GAAG,CAAA,EAAG;AAChG,MAAA,MAAM,QAAA,GAAW,GAAG,OAAA,CAAQ,IAAA,IAAQ,GAAG,CAAA,CAAA,EAAI,aAAA,CAAc,WAAW,CAAC,CAAA,CAAA;AACrE,MAAA,MAAM,SAAA,GACJ,MAAA,IAAU,eAAA,GACN,qBAAA,CAAsB,eAAA,EAAiB;AAAA,QACrC,GAAG,OAAA;AAAA,QACH,IAAA,EAAM;AAAA,OACP,CAAA,GACD,wBAAA,CAAyB,eAAA,EAAiB;AAAA,QACxC,GAAG,OAAA;AAAA,QACH,IAAA,EAAM;AAAA,OACP,CAAA;AACP,MAAA,MAAM,QAAA,GAAW,GAAG,OAAA,CAAQ,uBAAA;AAAA;AAAA,QACN,YAAY,EAAE,QAAA,EAAU,OAAA,CAAQ,GAAA,CAAI,WAAW,CAAA;AAAA;AAAA,QAC/C,gBAAgB,WAAW,CAAA;AAAA;AAAA,QAC3B,MAAA;AAAA;AAAA,QACA;AAAA,OACtB;AACA,MAAA,eAAA,CAAgB,iBAAiB,QAAQ,CAAA;AACzC,MAAA,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA,IACpB;AACA,IAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,qBAAA,CAAsB,IAAI,CAAA;AAAA,EAC9C;AAEA,EAAA,OAAO,OAAA;AACT;;;;"}