@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
1 lines • 2.77 kB
Source Map (JSON)
{"version":3,"file":"awaited.cjs","names":["<Solid.Show when={props.ready()}>\n {(_) => {\n const state = props.deferred[TSR_DEFERRED_PROMISE]\n if (state.status === 'error') {\n throw state.error\n }\n return props.children(state.data as T) as any\n }}\n </Solid.Show>","Solid.Show","<Solid.Loading fallback={props.fallback as any}>\n <InnerAwait deferred={deferred} ready={ready}>\n {props.children}\n </InnerAwait>\n </Solid.Loading>","Solid.Loading","<InnerAwait deferred={deferred} ready={ready}>\n {props.children}\n </InnerAwait>"],"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 const data = Solid.createMemo(async () => await promise)\n\n return [data(), promise]\n}\n\nfunction InnerAwait<T>(props: {\n deferred: DeferredPromise<T>\n ready: Solid.Accessor<unknown>\n children: (res: T) => SolidNode\n}) {\n return (\n <Solid.Show when={props.ready()}>\n {(_) => {\n const state = props.deferred[TSR_DEFERRED_PROMISE]\n if (state.status === 'error') {\n throw state.error\n }\n return props.children(state.data as T) as any\n }}\n </Solid.Show>\n )\n}\n\nexport function Await<T>(\n props: AwaitOptions<T> & {\n fallback?: SolidNode\n children: (result: T) => SolidNode\n },\n) {\n const deferred = defer(props.promise)\n const ready = Solid.createMemo(async () => {\n await deferred\n return true\n })\n\n return (\n <Solid.Loading fallback={props.fallback as any}>\n <InnerAwait deferred={deferred} ready={ready}>\n {props.children}\n </InnerAwait>\n </Solid.Loading>\n )\n}\n"],"mappings":";;;;;;AAUA,SAAgB,WAAc,EAC5B,SAAS,YACiD;CAC1D,MAAM,WAAA,GAAA,sBAAA,OAAgB,QAAQ;CAG9B,OAAO,CAFM,SAAM,WAAW,YAAY,MAAM,OAExC,EAAK,GAAG,OAAO;AACzB;AAEA,SAAS,WAAc,OAIpB;CACD,QAAA,GAAA,aAAA,iBACEA,SAACC,MAAD;EAAY,IAAA,OAAA;UAAM,MAAM,MAAM;EAAC;EAA/BD,WACI,MAAM;GACN,MAAM,QAAQ,MAAM,SAAS,sBAAA;GAC7B,IAAI,MAAM,WAAW,SACnB,MAAM,MAAM;GAEd,OAAO,MAAM,SAAS,MAAM,IAAS;EACvC;CACU,CAAA;AAEhB;AAEA,SAAgB,MACd,OAIA;CACA,MAAM,YAAA,GAAA,sBAAA,OAAiB,MAAM,OAAO;CACpC,MAAM,QAAQ,SAAM,WAAW,YAAY;EACzC,MAAM;EACN,OAAO;CACT,CAAC;CAED,QAAA,GAAA,aAAA,iBACEE,SAACC,SAAD;EAAe,IAAA,WAAA;UAAU,MAAM;EAAe;EAA9C,IAAA,WAAA;4CACEC,YAAAA;IAAsB;IAAiB;IAAvC,IAAA,WAAA;YACG,MAAM;IACG;;EACC;;AAEnB"}