wangzhibo
2026-05-09 53418655c061ac26f66058253f39200aced1ab1d
1
2
3
4
5
6
7
{
  "version": 3,
  "sources": ["../../src/response.ts"],
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { FullOperationResponse } from \"@azure/core-client\";\nimport type { PipelineResponse } from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport type { HttpHeadersLike, WebResourceLike } from \"./util.js\";\nimport { toHttpHeadersLike, toPipelineRequest, toWebResourceLike } from \"./util.js\";\n/**\n * Http Response that is compatible with the core-v1(core-http).\n */\nexport interface CompatResponse extends Omit<FullOperationResponse, \"request\" | \"headers\"> {\n  /**\n   * A description of a HTTP request to be made to a remote server.\n   */\n  request: WebResourceLike;\n  /**\n   * A collection of HTTP header key/value pairs.\n   */\n  headers: HttpHeadersLike;\n}\n\nconst originalResponse = Symbol(\"Original FullOperationResponse\");\ntype ExtendedCompatResponse = CompatResponse & { [originalResponse]?: FullOperationResponse };\n\n/**\n * A helper to convert response objects from the new pipeline back to the old one.\n * @param response - A response object from core-client.\n * @returns A response compatible with `HttpOperationResponse` from core-http.\n */\nexport function toCompatResponse(\n  response: FullOperationResponse,\n  options?: { createProxy?: boolean },\n): CompatResponse {\n  let request = toWebResourceLike(response.request);\n  let headers = toHttpHeadersLike(response.headers);\n  if (options?.createProxy) {\n    return new Proxy(response, {\n      get(target, prop, receiver) {\n        if (prop === \"headers\") {\n          return headers;\n        } else if (prop === \"request\") {\n          return request;\n        } else if (prop === originalResponse) {\n          return response;\n        }\n        return Reflect.get(target, prop, receiver);\n      },\n      set(target, prop, value, receiver) {\n        if (prop === \"headers\") {\n          headers = value;\n        } else if (prop === \"request\") {\n          request = value;\n        }\n        return Reflect.set(target, prop, value, receiver);\n      },\n    }) as unknown as CompatResponse;\n  } else {\n    return {\n      ...response,\n      request,\n      headers,\n    };\n  }\n}\n\n/**\n * A helper to convert back to a PipelineResponse\n * @param compatResponse - A response compatible with `HttpOperationResponse` from core-http.\n */\nexport function toPipelineResponse(compatResponse: CompatResponse): PipelineResponse {\n  const extendedCompatResponse = compatResponse as ExtendedCompatResponse;\n  const response = extendedCompatResponse[originalResponse];\n  const headers = createHttpHeaders(compatResponse.headers.toJson({ preserveCase: true }));\n  if (response) {\n    response.headers = headers;\n    return response;\n  } else {\n    return {\n      ...compatResponse,\n      headers,\n      request: toPipelineRequest(compatResponse.request),\n    };\n  }\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,gCAAkC;AAElC,kBAAwE;AAexE,MAAM,mBAAmB,uBAAO,gCAAgC;AAQzD,SAAS,iBACd,UACA,SACgB;AAChB,MAAI,cAAU,+BAAkB,SAAS,OAAO;AAChD,MAAI,cAAU,+BAAkB,SAAS,OAAO;AAChD,MAAI,SAAS,aAAa;AACxB,WAAO,IAAI,MAAM,UAAU;AAAA,MACzB,IAAI,QAAQ,MAAM,UAAU;AAC1B,YAAI,SAAS,WAAW;AACtB,iBAAO;AAAA,QACT,WAAW,SAAS,WAAW;AAC7B,iBAAO;AAAA,QACT,WAAW,SAAS,kBAAkB;AACpC,iBAAO;AAAA,QACT;AACA,eAAO,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAAA,MAC3C;AAAA,MACA,IAAI,QAAQ,MAAM,OAAO,UAAU;AACjC,YAAI,SAAS,WAAW;AACtB,oBAAU;AAAA,QACZ,WAAW,SAAS,WAAW;AAC7B,oBAAU;AAAA,QACZ;AACA,eAAO,QAAQ,IAAI,QAAQ,MAAM,OAAO,QAAQ;AAAA,MAClD;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AACL,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAMO,SAAS,mBAAmB,gBAAkD;AACnF,QAAM,yBAAyB;AAC/B,QAAM,WAAW,uBAAuB,gBAAgB;AACxD,QAAM,cAAU,6CAAkB,eAAe,QAAQ,OAAO,EAAE,cAAc,KAAK,CAAC,CAAC;AACvF,MAAI,UAAU;AACZ,aAAS,UAAU;AACnB,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,aAAS,+BAAkB,eAAe,OAAO;AAAA,IACnD;AAAA,EACF;AACF;",
  "names": []
}