wangzhibo
2026-05-09 53418655c061ac26f66058253f39200aced1ab1d
1
2
3
4
5
6
7
{
  "version": 3,
  "sources": ["/mnt/vss/_work/1/s/sdk/core/core-rest-pipeline/src/util/wrapAbortSignal.ts"],
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\n\n/**\n * Creates a native AbortSignal which reflects the state of the provided AbortSignalLike.\n * If the AbortSignalLike is already a native AbortSignal, it is returned as is.\n * @param abortSignalLike - The AbortSignalLike to wrap.\n * @returns - An object containing the native AbortSignal and an optional cleanup function. The cleanup function should be called when the AbortSignal is no longer needed.\n */\nexport function wrapAbortSignalLike(abortSignalLike: AbortSignalLike): {\n  abortSignal: AbortSignal;\n  cleanup?: () => void;\n} {\n  if (abortSignalLike instanceof AbortSignal) {\n    return { abortSignal: abortSignalLike };\n  }\n\n  if (abortSignalLike.aborted) {\n    return { abortSignal: AbortSignal.abort((abortSignalLike as any).reason) };\n  }\n\n  const controller = new AbortController();\n  let needsCleanup = true;\n  function cleanup(): void {\n    if (needsCleanup) {\n      abortSignalLike.removeEventListener(\"abort\", listener);\n      needsCleanup = false;\n    }\n  }\n  function listener(): void {\n    controller.abort((abortSignalLike as any).reason);\n    cleanup();\n  }\n\n  abortSignalLike.addEventListener(\"abort\", listener);\n  return { abortSignal: controller.signal, cleanup };\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,SAAS,oBAAoB,iBAGlC;AACA,MAAI,2BAA2B,aAAa;AAC1C,WAAO,EAAE,aAAa,gBAAgB;AAAA,EACxC;AAEA,MAAI,gBAAgB,SAAS;AAC3B,WAAO,EAAE,aAAa,YAAY,MAAO,gBAAwB,MAAM,EAAE;AAAA,EAC3E;AAEA,QAAM,aAAa,IAAI,gBAAgB;AACvC,MAAI,eAAe;AACnB,WAAS,UAAgB;AACvB,QAAI,cAAc;AAChB,sBAAgB,oBAAoB,SAAS,QAAQ;AACrD,qBAAe;AAAA,IACjB;AAAA,EACF;AACA,WAAS,WAAiB;AACxB,eAAW,MAAO,gBAAwB,MAAM;AAChD,YAAQ;AAAA,EACV;AAEA,kBAAgB,iBAAiB,SAAS,QAAQ;AAClD,SAAO,EAAE,aAAa,WAAW,QAAQ,QAAQ;AACnD;",
  "names": []
}