{"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"]}