{"version":3,"file":"awaited.cjs","names":["Solid","TSR_DEFERRED_PROMISE","defer","DeferredPromise","SolidNode","AwaitOptions","promise","Promise","T","useAwaited","_promise","data","status","error","Await","props","fallback","children","result","_$createComponent","AwaitInner","Suspense","resource","createResource","value","Show","when"],"sources":["../../src/awaited.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\n\nimport { TSR_DEFERRED_PROMISE, defer } from '@tanstack/router-core'\nimport type { DeferredPromise } from '@tanstack/router-core'\nimport type { SolidNode } from './route'\n\nexport type AwaitOptions<T> = {\n  promise: Promise<T>\n}\n\nexport function useAwaited<T>({\n  promise: _promise,\n}: AwaitOptions<T>): [data: T, promise: DeferredPromise<T>] {\n  const promise = defer(_promise)\n\n  if (promise[TSR_DEFERRED_PROMISE].status === 'pending') {\n    throw promise\n  }\n\n  if (promise[TSR_DEFERRED_PROMISE].status === 'error') {\n    throw promise[TSR_DEFERRED_PROMISE].error\n  }\n\n  return [promise[TSR_DEFERRED_PROMISE].data, promise]\n}\n\nexport function Await<T>(\n  props: AwaitOptions<T> & {\n    fallback?: SolidNode\n    children: (result: T) => SolidNode\n  },\n) {\n  if (!('fallback' in props)) {\n    return <AwaitInner {...props} />\n  }\n\n  return (\n    <Solid.Suspense fallback={props.fallback}>\n      <AwaitInner {...props} />\n    </Solid.Suspense>\n  )\n}\n\nfunction AwaitInner<T>(\n  props: AwaitOptions<T> & {\n    fallback?: SolidNode\n    children: (result: T) => SolidNode\n  },\n) {\n  const [resource] = Solid.createResource(\n    () => defer(props.promise),\n    async (promise) => ({ value: await promise }),\n  )\n\n  return (\n    <Solid.Show when={resource()}>\n      {(result) => props.children(result().value)}\n    </Solid.Show>\n  )\n}\n"],"mappings":";;;;;;AAUA,SAAgBS,WAAc,EAC5BH,SAASI,YACiD;CAC1D,MAAMJ,WAAAA,GAAAA,sBAAAA,OAAgBI,QAAQ;CAE9B,IAAIJ,QAAQL,sBAAAA,sBAAsBW,WAAW,WAC3C,MAAMN;CAGR,IAAIA,QAAQL,sBAAAA,sBAAsBW,WAAW,SAC3C,MAAMN,QAAQL,sBAAAA,sBAAsBY;CAGtC,OAAO,CAACP,QAAQL,sBAAAA,sBAAsBU,MAAML,OAAO;AACrD;AAEA,SAAgBQ,MACdC,OAIA;CACA,IAAI,EAAE,cAAcA,QAClB,QAAA,GAAA,aAAA,iBAAQK,YAAeL,KAAK;CAG9B,QAAA,GAAA,aAAA,iBACGf,SAAMqB,UAAQ;EAAA,IAACL,WAAQ;GAAA,OAAED,MAAMC;EAAQ;EAAA,IAAAC,WAAA;GAAA,QAAA,GAAA,aAAA,iBACrCG,YAAeL,KAAK;EAAA;CAAA,CAAA;AAG3B;AAEA,SAASK,WACPL,OAIA;CACA,MAAM,CAACO,YAAYtB,SAAMuB,sBAAAA,GAAAA,sBAAAA,OACXR,MAAMT,OAAO,GACzB,OAAOA,aAAa,EAAEkB,OAAO,MAAMlB,QAAQ,EAC7C;CAEA,QAAA,GAAA,aAAA,iBACGN,SAAMyB,MAAI;EAAA,IAACC,OAAI;GAAA,OAAEJ,SAAS;EAAC;EAAAL,WACxBC,WAAWH,MAAME,SAASC,OAAO,EAAEM,KAAK;CAAC,CAAA;AAGjD"}