{"version":3,"sources":["../src/race.ts","../src/abortable.ts"],"names":[],"mappings":";AAuCA,SAAS,SAAS,KAAA,EAAiC;AAC/C,EAAA,OAAO,UAAU,IAAA,KAAS,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,KAAA,KAAU,UAAA,CAAA;AAC5E;AAEA,SAAS,iBAAiB,SAAA,EAAmB;AACzC,EAAA,MAAM,SAAA,uBAAgB,GAAA,EAAc;AACpC,EAAA,MAAM,MAAA,GAAS,EAAE,SAAA,EAAW,OAAA,EAAS,KAAA,EAAM;AAG3C,EAAA,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAA,CAAE,IAAA;AAAA,IACvB,CAAA,KAAA,KAAS;AACL,MAAA,KAAA,MAAW,EAAE,OAAA,EAAQ,IAAK,SAAA,EAAW;AACjC,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACjB;AAEA,MAAA,SAAA,CAAU,KAAA,EAAM;AAChB,MAAA,MAAA,CAAO,OAAA,GAAU,IAAA;AAAA,IACrB,CAAA;AAAA,IACA,CAAA,GAAA,KAAO;AACH,MAAA,KAAA,MAAW,EAAE,MAAA,EAAO,IAAK,SAAA,EAAW;AAChC,QAAA,MAAA,CAAO,GAAG,CAAA;AAAA,MACd;AAEA,MAAA,SAAA,CAAU,KAAA,EAAM;AAChB,MAAA,MAAA,CAAO,OAAA,GAAU,IAAA;AAAA,IACrB;AAAA,GACJ;AACA,EAAA,OAAO,MAAA;AACX;AAIA,IAAM,EAAA,uBAAS,OAAA,EAAgE;AAQ/E,eAAsB,SAA4C,UAAA,EAA4C;AAC1G,EAAA,IAAI,QAAA;AACJ,EAAA,MAAM,MAAA,GAAS,IAAI,OAAA,CAAQ,CAAC,SAAS,MAAA,KAAW;AAC5C,IAAA,QAAA,GAAW,EAAE,QAAQ,OAAA,EAAQ;AAC7B,IAAA,KAAA,MAAW,aAAa,UAAA,EAAY;AAChC,MAAA,IAAI,CAAC,QAAA,CAAS,SAAS,CAAA,EAAG;AAKtB,QAAA,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAA,CAAE,IAAA,CAAK,SAAS,MAAM,CAAA;AAC/C,QAAA;AAAA,MACJ;AAEA,MAAA,IAAI,MAAA,GAAS,EAAA,CAAG,GAAA,CAAI,SAAS,CAAA;AAC7B,MAAA,IAAI,WAAW,MAAA,EAAW;AACtB,QAAA,MAAA,GAAS,iBAAiB,SAAS,CAAA;AACnC,QAAA,MAAA,CAAO,SAAA,CAAU,IAAI,QAAQ,CAAA;AAC7B,QAAA,EAAA,CAAG,GAAA,CAAI,WAAW,MAAM,CAAA;AAAA,MAC5B,CAAA,MAAA,IAAW,OAAO,OAAA,EAAS;AAGvB,QAAA,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAA,CAAE,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA,MACnD,CAAA,MAAO;AACH,QAAA,MAAA,CAAO,SAAA,CAAU,IAAI,QAAQ,CAAA;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,CAAC,CAAA;AAID,EAAA,OAAO,MAAO,MAAA,CAAO,OAAA,CAAQ,MAAM;AAC/B,IAAA,KAAA,MAAW,aAAa,UAAA,EAAY;AAChC,MAAA,IAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AACrB,QAAA,MAAM,MAAA,GAAS,EAAA,CAAG,GAAA,CAAI,SAAS,CAAA;AAC/B,QAAA,MAAA,CAAO,SAAA,CAAU,OAAO,QAAQ,CAAA;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ,CAAC,CAAA;AACL;;;ACtGO,SAAS,mBAAA,CAAuB,SAAqB,WAAA,EAAuC;AAC/F,EAAA,IAAI,CAAC,WAAA,EAAa;AACd,IAAA,OAAO,OAAA;AAAA,EACX,CAAA,MAAO;AACH,IAAA,OAAO,QAAA,CAAS;AAAA;AAAA;AAAA;AAAA,MAIZ,IAAI,OAAA,CAAe,CAAC,CAAA,EAAG,MAAA,KAAW;AAC9B,QAAA,IAAI,YAAY,OAAA,EAAS;AAErB,UAAA,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,QAC7B,CAAA,MAAO;AACH,UAAA,WAAA,CAAY,gBAAA,CAAiB,SAAS,WAAY;AAE9C,YAAA,MAAA,CAAO,KAAK,MAAM,CAAA;AAAA,UACtB,CAAC,CAAA;AAAA,QACL;AAAA,MACJ,CAAC,CAAA;AAAA,MACD;AAAA,KACH,CAAA;AAAA,EACL;AACJ","file":"index.node.mjs","sourcesContent":["/**\n * Forked from https://github.com/digitalloggers/race-as-promised/tree/master\n *\n * Authored by Brian Kim:\n * https://github.com/nodejs/node/issues/17469#issuecomment-685216777\n *\n * Adapted to module structure.\n *\n * This is free and unencumbered software released into the public domain.\n *\n * Anyone is free to copy, modify, publish, use, compile, sell, or\n * distribute this software, either in source code form or as a compiled\n * binary, for any purpose, commercial or non-commercial, and by any\n * means.\n *\n * In jurisdictions that recognize copyright laws, the author or authors\n * of this software dedicate any and all copyright interest in the\n * software to the public domain. We make this dedication for the benefit\n * of the public at large and to the detriment of our heirs and\n * successors. We intend this dedication to be an overt act of\n * relinquishment in perpetuity of all present and future rights to this\n * software under copyright law.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n *\n * For more information, please refer to \n */\n\ntype Deferred = Readonly<{\n reject: (reason?: unknown) => void;\n resolve: (value: unknown) => void;\n}>;\n\nfunction isObject(value: unknown): value is object {\n return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n\nfunction addRaceContender(contender: object) {\n const deferreds = new Set();\n const record = { deferreds, settled: false };\n\n // This call to `then` happens once for the lifetime of the value.\n Promise.resolve(contender).then(\n value => {\n for (const { resolve } of deferreds) {\n resolve(value);\n }\n\n deferreds.clear();\n record.settled = true;\n },\n err => {\n for (const { reject } of deferreds) {\n reject(err);\n }\n\n deferreds.clear();\n record.settled = true;\n },\n );\n return record;\n}\n\n// Keys are the values passed to race, values are a record of data containing a\n// set of deferreds and whether the value has settled.\nconst wm = new WeakMap