{"version":3,"file":"iter.cjs","names":["thing: unknown","x: unknown","context: Partial<RunnableConfig> | undefined","iter: IterableIterator<T>","AsyncLocalStorageProviderSingleton","pickRunnableConfigKeys","iter: AsyncIterable<T>"],"sources":["../../src/runnables/iter.ts"],"sourcesContent":["import type { RunnableConfig } from \"../runnables/types.js\";\nimport { AsyncLocalStorageProviderSingleton } from \"../singletons/index.js\";\nimport { pickRunnableConfigKeys } from \"./config.js\";\n\nexport function isIterableIterator(\n  thing: unknown\n): thing is IterableIterator<unknown> {\n  return (\n    typeof thing === \"object\" &&\n    thing !== null &&\n    typeof (thing as Generator)[Symbol.iterator] === \"function\" &&\n    // avoid detecting array/set as iterator\n    typeof (thing as Generator).next === \"function\"\n  );\n}\n\nexport const isIterator = (x: unknown): x is Iterator<unknown> =>\n  x != null &&\n  typeof x === \"object\" &&\n  \"next\" in x &&\n  typeof x.next === \"function\";\n\nexport function isAsyncIterable(\n  thing: unknown\n): thing is AsyncIterable<unknown> {\n  return (\n    typeof thing === \"object\" &&\n    thing !== null &&\n    typeof (thing as AsyncIterable<unknown>)[Symbol.asyncIterator] ===\n      \"function\"\n  );\n}\n\nexport function* consumeIteratorInContext<T>(\n  context: Partial<RunnableConfig> | undefined,\n  iter: IterableIterator<T>\n): IterableIterator<T> {\n  while (true) {\n    const { value, done } = AsyncLocalStorageProviderSingleton.runWithConfig(\n      pickRunnableConfigKeys(context),\n      iter.next.bind(iter),\n      true\n    );\n    if (done) {\n      break;\n    } else {\n      yield value;\n    }\n  }\n}\n\nexport async function* consumeAsyncIterableInContext<T>(\n  context: Partial<RunnableConfig> | undefined,\n  iter: AsyncIterable<T>\n): AsyncIterableIterator<T> {\n  const iterator = iter[Symbol.asyncIterator]();\n  while (true) {\n    const { value, done } =\n      await AsyncLocalStorageProviderSingleton.runWithConfig(\n        pickRunnableConfigKeys(context),\n        iterator.next.bind(iter),\n        true\n      );\n    if (done) {\n      break;\n    } else {\n      yield value;\n    }\n  }\n}\n"],"mappings":";;;;;AAIA,SAAgB,mBACdA,OACoC;AACpC,QACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAAoB,OAAO,cAAc,cAEjD,OAAQ,MAAoB,SAAS;AAExC;AAED,MAAa,aAAa,CAACC,MACzB,KAAK,QACL,OAAO,MAAM,YACb,UAAU,KACV,OAAO,EAAE,SAAS;AAEpB,SAAgB,gBACdD,OACiC;AACjC,QACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAAiC,OAAO,mBAC9C;AAEL;AAED,UAAiB,yBACfE,SACAC,MACqB;AACrB,QAAO,MAAM;EACX,MAAM,EAAE,OAAO,MAAM,GAAGC,iDAAmC,cACzDC,sCAAuB,QAAQ,EAC/B,KAAK,KAAK,KAAK,KAAK,EACpB,KACD;AACD,MAAI,KACF;OAEA,MAAM;CAET;AACF;AAED,gBAAuB,8BACrBH,SACAI,MAC0B;CAC1B,MAAM,WAAW,KAAK,OAAO,gBAAgB;AAC7C,QAAO,MAAM;EACX,MAAM,EAAE,OAAO,MAAM,GACnB,MAAMF,iDAAmC,cACvCC,sCAAuB,QAAQ,EAC/B,SAAS,KAAK,KAAK,KAAK,EACxB,KACD;AACH,MAAI,KACF;OAEA,MAAM;CAET;AACF"}