{"version":3,"file":"awaited.cjs","names":["Solid","TSR_DEFERRED_PROMISE","defer","DeferredPromise","SolidNode","AwaitOptions","promise","Promise","T","useAwaited","_promise","status","error","data","Await","props","fallback","children","result","resource","createResource","p","deferStream","_$createComponent","Show","when","Suspense","AwaitInner"],"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>): [T, 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    const [resource] = Solid.createResource(\n      () => defer(props.promise),\n      (p) => p,\n      {\n        deferStream: true,\n      },\n    )\n\n    return (\n      <Solid.Show when={resource()}>\n        {(data) => props.children(data())}\n      </Solid.Show>\n    )\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    (p) => p,\n  )\n\n  return props.children(resource() as T)\n}\n"],"mappings":";;;;;;AAUA,SAAgBS,WAAc,EAC5BH,SAASI,YACkC;CAC3C,MAAMJ,WAAAA,GAAAA,sBAAAA,OAAgBI,SAAS;AAE/B,KAAIJ,QAAQL,sBAAAA,sBAAsBU,WAAW,UAC3C,OAAML;AAGR,KAAIA,QAAQL,sBAAAA,sBAAsBU,WAAW,QAC3C,OAAML,QAAQL,sBAAAA,sBAAsBW;AAGtC,QAAO,CAACN,QAAQL,sBAAAA,sBAAsBY,MAAMP,QAAQ;;AAGtD,SAAgBQ,MACdC,OAIA;AACA,KAAI,EAAE,cAAcA,QAAQ;EAC1B,MAAM,CAACI,YAAYnB,SAAMoB,sBAAAA,GAAAA,sBAAAA,OACXL,MAAMT,QAAQ,GACzBe,MAAMA,GACP,EACEC,aAAa,MAEjB,CAAC;AAED,UAAA,GAAA,aAAA,iBACGtB,SAAMwB,MAAI;GAAA,IAACC,OAAI;AAAA,WAAEN,UAAU;;GAAAF,WACxBJ,SAASE,MAAME,SAASJ,MAAM,CAAA;GAAC,CAAA;;AAKvC,SAAA,GAAA,aAAA,iBACGb,SAAM0B,UAAQ;EAAA,IAACV,WAAQ;AAAA,UAAED,MAAMC;;EAAQ,IAAAC,WAAA;AAAA,WAAA,GAAA,aAAA,iBACrCU,YAAeZ,MAAK;;EAAA,CAAA;;AAK3B,SAASY,WACPZ,OAIA;CACA,MAAM,CAACI,YAAYnB,SAAMoB,sBAAAA,GAAAA,sBAAAA,OACXL,MAAMT,QAAQ,GACzBe,MAAMA,EACR;AAED,QAAON,MAAME,SAASE,UAAU,CAAM"}