{"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":";;;;;;;AAYwB,SAAA,qBAAA,CAAsB,cAA4B,OAA4C,EAAA;AACpH,EAAA,IAAI,aAAa,MAAQ,EAAA;AACvB,IAAO,OAAA,qBAAA,CAAsB,YAAa,CAAA,MAAA,EAAQ,OAAO,CAAA;AAAA;AAG3D,EAAA,IAAI,aAAa,OAAS,EAAA;AACxB,IAAA,MAAM,OAAyB,EAAC;AAChC,IAAW,KAAA,MAAA,CAAC,WAAa,EAAA,eAAe,CAAK,IAAA,UAAA,CAAW,YAAa,CAAA,OAAA,IAAW,EAAC,EAAG,OAAQ,CAAA,GAAG,CAAG,EAAA;AAChG,MAAM,MAAA,QAAA,GAAW,GAAG,OAAQ,CAAA,IAAA,IAAQ,GAAG,CAAI,CAAA,EAAA,aAAA,CAAc,WAAW,CAAC,CAAA,CAAA;AACrE,MAAA,MAAM,SACJ,GAAA,MAAA,IAAU,eACN,GAAA,qBAAA,CAAsB,eAAiB,EAAA;AAAA,QACrC,GAAG,OAAA;AAAA,QACH,IAAM,EAAA;AAAA,OACP,CACD,GAAA,wBAAA,CAAyB,eAAiB,EAAA;AAAA,QACxC,GAAG,OAAA;AAAA,QACH,IAAM,EAAA;AAAA,OACP,CAAA;AACP,MAAM,MAAA,QAAA,GAAW,GAAG,OAAQ,CAAA,uBAAA;AAAA;AAAA,QACN,YAAY,EAAE,QAAA,EAAU,OAAQ,CAAA,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;AAEpB,IAAO,OAAA,EAAA,CAAG,OAAQ,CAAA,qBAAA,CAAsB,IAAI,CAAA;AAAA;AAG9C,EAAO,OAAA,OAAA;AACT;;;;"}