{"version":3,"file":"createAsync-7DkJONWY.js","sources":["../../../../../node_modules/.pnpm/@solidjs+router@0.13.1_solid-js@1.8.15/node_modules/@solidjs/router/dist/data/createAsync.js"],"sourcesContent":["/**\n * This is mock of the eventual Solid 2.0 primitive. It is not fully featured.\n */\nimport { createResource, sharedConfig, untrack } from \"solid-js\";\nimport { createStore, reconcile, unwrap } from \"solid-js/store\";\nimport { isServer } from \"solid-js/web\";\nexport function createAsync(fn, options) {\n let resource;\n let prev = () => !resource || resource.state === \"unresolved\" ? undefined : resource.latest;\n [resource] = createResource(() => subFetch(fn, untrack(prev)), v => v, options);\n return () => resource();\n}\nexport function createAsyncStore(fn, options = {}) {\n let resource;\n let prev = () => !resource || resource.state === \"unresolved\" ? undefined : unwrap(resource.latest);\n [resource] = createResource(() => subFetch(fn, untrack(prev)), v => v, {\n ...options,\n storage: (init) => createDeepSignal(init, options.reconcile)\n });\n return () => resource();\n}\nfunction createDeepSignal(value, options) {\n const [store, setStore] = createStore({\n value\n });\n return [\n () => store.value,\n (v) => {\n typeof v === \"function\" && (v = v());\n setStore(\"value\", reconcile(v, options));\n return store.value;\n }\n ];\n}\n// mock promise while hydrating to prevent fetching\nclass MockPromise {\n static all() {\n return new MockPromise();\n }\n static allSettled() {\n return new MockPromise();\n }\n static any() {\n return new MockPromise();\n }\n static race() {\n return new MockPromise();\n }\n static reject() {\n return new MockPromise();\n }\n static resolve() {\n return new MockPromise();\n }\n catch() {\n return new MockPromise();\n }\n then() {\n return new MockPromise();\n }\n finally() {\n return new MockPromise();\n }\n}\nfunction subFetch(fn, prev) {\n if (isServer || !sharedConfig.context)\n return fn(prev);\n const ogFetch = fetch;\n const ogPromise = Promise;\n try {\n window.fetch = () => new MockPromise();\n Promise = MockPromise;\n return fn(prev);\n }\n finally {\n window.fetch = ogFetch;\n Promise = ogPromise;\n }\n}\n"],"names":["createAsync","fn","options","resource","prev","state","undefined","latest","createResource","subFetch","untrack","v","MockPromise","all","allSettled","any","race","reject","resolve","catch","then","finally","sharedConfig","context","ogFetch","fetch","ogPromise","Promise","window"],"mappings":"uqBAMO,SAASA,EAAYC,EAAIC,EAAS,CACrC,IAAIC,EACAC,EAAOA,IAAM,CAACD,GAAYA,EAASE,QAAU,aAAeC,OAAYH,EAASI,OACrF,OAACJ,CAAQ,EAAIK,EAAe,IAAMC,EAASR,EAAIS,EAAQN,CAAI,CAAC,EAAGO,GAAKA,EAAGT,CAAO,EACvE,IAAMC,EAAQ,CACzB,CAwBA,MAAMS,CAAY,CACd,OAAOC,KAAM,CACT,OAAO,IAAID,CACf,CACA,OAAOE,YAAa,CAChB,OAAO,IAAIF,CACf,CACA,OAAOG,KAAM,CACT,OAAO,IAAIH,CACf,CACA,OAAOI,MAAO,CACV,OAAO,IAAIJ,CACf,CACA,OAAOK,QAAS,CACZ,OAAO,IAAIL,CACf,CACA,OAAOM,SAAU,CACb,OAAO,IAAIN,CACf,CACAO,OAAQ,CACJ,OAAO,IAAIP,CACf,CACAQ,MAAO,CACH,OAAO,IAAIR,CACf,CACAS,SAAU,CACN,OAAO,IAAIT,CACf,CACJ,CACA,SAASH,EAASR,EAAIG,EAAM,CACxB,GAAgB,CAACkB,EAAaC,QAC1B,OAAOtB,EAAGG,CAAI,EAClB,MAAMoB,EAAUC,MACVC,EAAYC,QAClB,GAAI,CACAC,cAAOH,MAAQ,IAAM,IAAIb,EACzBe,QAAUf,EACHX,EAAGG,CAAI,CAClB,QACQ,CACJwB,OAAOH,MAAQD,EACfG,QAAUD,CACd,CACJ","x_google_ignoreList":[0]}