graphql
Version:
A Query Language and Runtime which can target any service.
1 lines • 1.29 kB
Source Map (JSON)
{"version":3,"file":"collectIteratorPromises.js","sourceRoot":"","sources":["../../src/execution/collectIteratorPromises.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iCAAgC;AAQxD,MAAM,UAAU,uBAAuB,CACrC,QAA2B;IAE3B,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBACnB,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC","sourcesContent":["import { isPromiseLike } from '../jsutils/isPromise.ts';\n\n/**\n * Drain a sync iterator after abrupt completion so later promise rejections\n * can be observed before they become unhandled.\n *\n * @internal\n */\nexport function collectIteratorPromises(\n iterator: Iterator<unknown>,\n): Array<unknown> {\n const promises = [];\n try {\n while (true) {\n const iteration = iterator.next();\n if (iteration.done) {\n return promises;\n }\n if (isPromiseLike(iteration.value)) {\n promises.push(iteration.value);\n }\n }\n } catch {\n // Ignore errors while draining the remaining items.\n return promises;\n }\n}\n"]}