{"version":3,"file":"selfAwareAsync.mjs","sources":["../../../../src/runtime/utils/selfAwareAsync.ts"],"sourcesContent":["/**\n * Executes an `async` resolver function, providing the `Promise`-to-be-returned as the\n * first argument to the resolver so that the resolver can refer to the `Promise` that\n * external callers will see.\n *\n * ```ts\n * const outer = selfAwareAsync(async inner => {\n *  console.log(outer === inner); // true\n * });\n * ```\n *\n * This utility exists to reduce boilerplate in cases where promise resolving code needs\n * to track or register its \"own\" `Promise` *as seen by the caller* in some way. E.g.,\n * when mapping `Promise` chains for `client.cancel()`.\n *\n * @param resolver\n * @returns\n */\nexport function selfAwareAsync(resolver) {\n    let resolve;\n    let reject;\n    const resultPromise = new Promise((res, rej) => {\n        resolve = res;\n        reject = rej;\n    });\n    resolver(resultPromise)\n        .then((result) => {\n        resolve(result);\n    })\n        .catch((error) => {\n        reject(error);\n    });\n    return resultPromise;\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,CAAC,QAAQ,EAAE;AACzC,IAAI,IAAI,OAAO;AACf,IAAI,IAAI,MAAM;AACd,IAAI,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AACpD,QAAQ,OAAO,GAAG,GAAG;AACrB,QAAQ,MAAM,GAAG,GAAG;AACpB,IAAI,CAAC,CAAC;AACN,IAAI,QAAQ,CAAC,aAAa;AAC1B,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK;AAC1B,QAAQ,OAAO,CAAC,MAAM,CAAC;AACvB,IAAI,CAAC;AACL,SAAS,KAAK,CAAC,CAAC,KAAK,KAAK;AAC1B,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,aAAa;AACxB;;;;"}