UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

1 lines 30.3 kB
{"version":3,"names":["useCallback","useSyncExternalStore","registerDevtoolsFunction","useParams","usePathname","findNearestNotFoundRoute","setNotFoundState","useContextKey","getContextKey","router","preloadedLoaderData","preloadingLoader","routeNode","setSSRLoaderData","ssrLoaderData","getClientMatchesSnapshot","subscribeToClientMatches","updateMatchLoaderData","getLoaderPath","dynamicImport","weakKey","useServerContext","process","env","ONE_LOADER_TIMEOUT_MS","loaderTimingHistory","MAX_TIMING_HISTORY","recordLoaderTiming","NODE_ENV","entry","unshift","length","pop","window","CustomEvent","dispatchEvent","detail","error","message","name","route","pathname","path","timestamp","Date","now","type","getLoaderTimingHistory","loaderState","subscribers","Set","LOADER_STATE_MAX","loaderStateKeys","setBoundedLoaderState","push","oldest","shift","updateState","updates","forEach","callback","subscribe","add","delete","getLoaderState","preloadedData","data","promise","state","hasLoadedOnce","refetchLoader","startTime","performance","loaderJSUrl","moduleLoadStart","module","catch","moduleLoadTime","loader","executionStart","result","executionTime","totalTime","__oneRedirect","source","replace","__oneError","notFoundRoute","notFoundPath","__oneNotFoundPath","notFoundRouteNode","originalPath","currentMatches","pageMatch","normalizedPathname","normalizedMatchPathname","routeId","err","Error","String","__oneRefetchLoader","refetchMatchLoader","currentPath","useLoaderState","loaderProps","loaderPropsFromServerContext","loaderData","loaderDataFromServerContext","params","has","get","refetch","serverContext","matches","contextKey","match","find","m","useAsyncFn","matchRouteId","startsWith","clientMatches","loaderStateEntry","isPageMatch","matchPathNormalized","matchPathFresh","fresh","resolvedPreloadData","then","val","console","loadData","useLoader","results","Map","started","USE_ASYNC_FN_CACHE_MAX","setBoundedResults","key","value","size","firstKey","keys","next","set","resetLoaderState","clear","props","JSON","stringify","Promise","final","current"],"sources":["useLoader.mjs"],"sourcesContent":["import { useCallback, useSyncExternalStore } from \"react\";\nimport { registerDevtoolsFunction } from \"./devtools/registry\";\nimport { useParams, usePathname } from \"./hooks\";\nimport { findNearestNotFoundRoute, setNotFoundState } from \"./notFoundState\";\nimport { useContextKey } from \"./router/Route\";\nimport { getContextKey } from \"./router/matchers\";\nimport { router } from \"./router/imperative-api\";\nimport { preloadedLoaderData, preloadingLoader, routeNode } from \"./router/router\";\nimport { setSSRLoaderData, ssrLoaderData } from \"./server/ssrLoaderData\";\nimport { getClientMatchesSnapshot, subscribeToClientMatches, updateMatchLoaderData } from \"./useMatches\";\nimport { getLoaderPath } from \"./utils/cleanUrl\";\nimport { dynamicImport } from \"./utils/dynamicImport\";\nimport { weakKey } from \"./utils/weakKey\";\nimport { useServerContext } from \"./vite/one-server-only\";\n\nprocess.env.ONE_LOADER_TIMEOUT_MS && +process.env.ONE_LOADER_TIMEOUT_MS;\nconst loaderTimingHistory = [];\nconst MAX_TIMING_HISTORY = 50;\nconst recordLoaderTiming = process.env.NODE_ENV === \"development\" ? (entry) => {\n\tloaderTimingHistory.unshift(entry);\n\tif (loaderTimingHistory.length > MAX_TIMING_HISTORY) loaderTimingHistory.pop();\n\tif (typeof window !== \"undefined\" && typeof CustomEvent !== \"undefined\") {\n\t\twindow.dispatchEvent(new CustomEvent(\"one-loader-timing\", { detail: entry }));\n\t\tif (entry.error) window.dispatchEvent(new CustomEvent(\"one-error\", { detail: {\n\t\t\terror: {\n\t\t\t\tmessage: entry.error,\n\t\t\t\tname: \"LoaderError\"\n\t\t\t},\n\t\t\troute: { pathname: entry.path },\n\t\t\ttimestamp: Date.now(),\n\t\t\ttype: \"loader\"\n\t\t} }));\n\t}\n} : void 0;\nfunction getLoaderTimingHistory() {\n\treturn loaderTimingHistory;\n}\nregisterDevtoolsFunction(\"getLoaderTimingHistory\", getLoaderTimingHistory);\nregisterDevtoolsFunction(\"recordLoaderTiming\", recordLoaderTiming);\nconst loaderState = {};\nconst subscribers = /* @__PURE__ */ new Set();\nconst LOADER_STATE_MAX = 200;\nconst loaderStateKeys = [];\nfunction setBoundedLoaderState(path, entry) {\n\tif (!(path in loaderState)) {\n\t\tloaderStateKeys.push(path);\n\t\tif (loaderStateKeys.length > LOADER_STATE_MAX) {\n\t\t\tconst oldest = loaderStateKeys.shift();\n\t\t\tdelete loaderState[oldest];\n\t\t}\n\t}\n\tloaderState[path] = entry;\n}\nfunction updateState(path, updates) {\n\tsetBoundedLoaderState(path, {\n\t\t...loaderState[path],\n\t\t...updates\n\t});\n\tsubscribers.forEach((callback) => {\n\t\tcallback();\n\t});\n}\nfunction subscribe(callback) {\n\tsubscribers.add(callback);\n\treturn () => subscribers.delete(callback);\n}\nfunction getLoaderState(path, preloadedData) {\n\tif (!(path in loaderState)) setBoundedLoaderState(path, {\n\t\tdata: preloadedData,\n\t\terror: void 0,\n\t\tpromise: void 0,\n\t\tstate: \"idle\",\n\t\thasLoadedOnce: !!preloadedData\n\t});\n\treturn loaderState[path];\n}\nasync function refetchLoader(pathname) {\n\tconst startTime = performance.now();\n\tupdateState(pathname, {\n\t\tstate: \"loading\",\n\t\terror: null\n\t});\n\ttry {\n\t\tconst loaderJSUrl = getLoaderPath(pathname, true, `${Date.now()}`);\n\t\tconst moduleLoadStart = performance.now();\n\t\tconst module = await dynamicImport(loaderJSUrl)?.catch(() => null);\n\t\tconst moduleLoadTime = performance.now() - moduleLoadStart;\n\t\tif (!module?.loader) {\n\t\t\tupdateState(pathname, {\n\t\t\t\tdata: void 0,\n\t\t\t\tstate: \"idle\",\n\t\t\t\thasLoadedOnce: true\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst executionStart = performance.now();\n\t\tconst result = await module.loader();\n\t\tconst executionTime = performance.now() - executionStart;\n\t\tconst totalTime = performance.now() - startTime;\n\t\tif (result?.__oneRedirect) {\n\t\t\trecordLoaderTiming?.({\n\t\t\t\tpath: pathname,\n\t\t\t\tstartTime,\n\t\t\t\tmoduleLoadTime,\n\t\t\t\texecutionTime,\n\t\t\t\ttotalTime,\n\t\t\t\tsource: \"refetch\"\n\t\t\t});\n\t\t\tupdateState(pathname, {\n\t\t\t\tdata: void 0,\n\t\t\t\tstate: \"idle\",\n\t\t\t\thasLoadedOnce: true\n\t\t\t});\n\t\t\trouter.replace(result.__oneRedirect);\n\t\t\treturn;\n\t\t}\n\t\tif (result?.__oneError === 404) {\n\t\t\trecordLoaderTiming?.({\n\t\t\t\tpath: pathname,\n\t\t\t\tstartTime,\n\t\t\t\tmoduleLoadTime,\n\t\t\t\texecutionTime,\n\t\t\t\ttotalTime,\n\t\t\t\tsource: \"refetch\"\n\t\t\t});\n\t\t\tconst notFoundRoute = findNearestNotFoundRoute(pathname, routeNode);\n\t\t\tsetNotFoundState({\n\t\t\t\tnotFoundPath: result.__oneNotFoundPath || \"/+not-found\",\n\t\t\t\tnotFoundRouteNode: notFoundRoute || void 0,\n\t\t\t\toriginalPath: pathname\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tupdateState(pathname, {\n\t\t\tdata: result,\n\t\t\tstate: \"idle\",\n\t\t\ttimestamp: Date.now(),\n\t\t\thasLoadedOnce: true\n\t\t});\n\t\tconst currentMatches = getClientMatchesSnapshot();\n\t\tconst pageMatch = currentMatches[currentMatches.length - 1];\n\t\tconst normalizedPathname = pathname.replace(/\\/$/, \"\") || \"/\";\n\t\tconst normalizedMatchPathname = (pageMatch?.pathname || \"\").replace(/\\/$/, \"\") || \"/\";\n\t\tif (pageMatch && normalizedMatchPathname === normalizedPathname) updateMatchLoaderData(pageMatch.routeId, result);\n\t\trecordLoaderTiming?.({\n\t\t\tpath: pathname,\n\t\t\tstartTime,\n\t\t\tmoduleLoadTime,\n\t\t\texecutionTime,\n\t\t\ttotalTime,\n\t\t\tsource: \"refetch\"\n\t\t});\n\t} catch (err) {\n\t\tconst totalTime = performance.now() - startTime;\n\t\tupdateState(pathname, {\n\t\t\terror: err,\n\t\t\tstate: \"idle\"\n\t\t});\n\t\trecordLoaderTiming?.({\n\t\t\tpath: pathname,\n\t\t\tstartTime,\n\t\t\ttotalTime,\n\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\tsource: \"refetch\"\n\t\t});\n\t\tthrow err;\n\t}\n}\nif (process.env.NODE_ENV === \"development\" && typeof window !== \"undefined\") window.__oneRefetchLoader = refetchLoader;\nasync function refetchMatchLoader(routeId, currentPath) {\n\tconst module = await dynamicImport(getLoaderPath(currentPath, true, `${Date.now()}`))?.catch(() => null);\n\tif (!module?.loader) return;\n\tconst result = await module.loader();\n\tif (result?.__oneRedirect || result?.__oneError) return;\n\tupdateMatchLoaderData(routeId, result);\n}\nfunction useLoaderState(loader) {\n\tconst { loaderProps: loaderPropsFromServerContext, loaderData: loaderDataFromServerContext } = useServerContext() || {};\n\tconst params = useParams();\n\tconst pathname = usePathname();\n\tconst currentPath = pathname.replace(/\\/index$/, \"\").replace(/\\/$/, \"\") || \"/\";\n\tif (typeof window === \"undefined\") {\n\t\tif (loader) {\n\t\t\tif (ssrLoaderData.has(loader)) return {\n\t\t\t\tdata: ssrLoaderData.get(loader),\n\t\t\t\trefetch: async () => {},\n\t\t\t\tstate: \"idle\"\n\t\t\t};\n\t\t\tconst serverContext = useServerContext();\n\t\t\tif (serverContext?.matches) {\n\t\t\t\tconst contextKey = useContextKey();\n\t\t\t\tconst match = serverContext.matches.find((m) => getContextKey(m.routeId) === contextKey);\n\t\t\t\tif (match && match.loaderData !== void 0) return {\n\t\t\t\t\tdata: match.loaderData,\n\t\t\t\t\trefetch: async () => {},\n\t\t\t\t\tstate: \"idle\"\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdata: useAsyncFn(loader, loaderPropsFromServerContext || {\n\t\t\t\t\tpath: pathname,\n\t\t\t\t\tparams\n\t\t\t\t}),\n\t\t\t\trefetch: async () => {},\n\t\t\t\tstate: \"idle\"\n\t\t\t};\n\t\t}\n\t\tif (loaderDataFromServerContext !== void 0) return {\n\t\t\tdata: loaderDataFromServerContext,\n\t\t\trefetch: async () => {},\n\t\t\tstate: \"idle\"\n\t\t};\n\t}\n\tconst matchRouteId = loader ? (() => {\n\t\tconst result = loader();\n\t\treturn typeof result === \"string\" && result.startsWith(\"./\") ? result : null;\n\t})() : null;\n\tconst clientMatches = useSyncExternalStore(subscribeToClientMatches, getClientMatchesSnapshot, getClientMatchesSnapshot);\n\tconst preloadedData = loaderPropsFromServerContext?.path === currentPath ? loaderDataFromServerContext : void 0;\n\tconst loaderStateEntry = useSyncExternalStore(subscribe, () => getLoaderState(currentPath, preloadedData), () => getLoaderState(currentPath, preloadedData));\n\tconst refetch = useCallback(() => refetchLoader(currentPath), [currentPath]);\n\tif (matchRouteId) {\n\t\tconst match = clientMatches.find((m) => m.routeId === matchRouteId);\n\t\tconst isPageMatch = clientMatches.length > 0 && clientMatches[clientMatches.length - 1]?.routeId === matchRouteId;\n\t\tconst matchPathNormalized = (match?.pathname || \"\").replace(/\\/$/, \"\") || \"/\";\n\t\tconst matchPathFresh = !isPageMatch || matchPathNormalized === currentPath;\n\t\tif (match && match.loaderData != null && matchPathFresh) return {\n\t\t\tdata: match.loaderData,\n\t\t\trefetch: async () => {\n\t\t\t\tawait refetchLoader(currentPath);\n\t\t\t\tconst fresh = loaderState[currentPath];\n\t\t\t\tif (fresh?.data != null) updateMatchLoaderData(matchRouteId, fresh.data);\n\t\t\t},\n\t\t\tstate: loaderStateEntry.state\n\t\t};\n\t}\n\tif (!loader) return {\n\t\trefetch,\n\t\tstate: loaderStateEntry.state\n\t};\n\tif (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce) {\n\t\tconst resolvedPreloadData = preloadedLoaderData[currentPath];\n\t\tif (resolvedPreloadData != null) {\n\t\t\tdelete preloadedLoaderData[currentPath];\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tloaderStateEntry.data = resolvedPreloadData;\n\t\t\tloaderStateEntry.hasLoadedOnce = true;\n\t\t} else if (preloadingLoader[currentPath]) loaderStateEntry.promise = preloadingLoader[currentPath].then((val) => {\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tdelete preloadedLoaderData[currentPath];\n\t\t\tif (val != null) updateState(currentPath, {\n\t\t\t\tdata: val,\n\t\t\t\thasLoadedOnce: true,\n\t\t\t\tpromise: void 0\n\t\t\t});\n\t\t\telse updateState(currentPath, { promise: void 0 });\n\t\t}).catch((err) => {\n\t\t\tconsole.error(`Error running loader()`, err);\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tupdateState(currentPath, {\n\t\t\t\terror: err,\n\t\t\t\tpromise: void 0\n\t\t\t});\n\t\t});\n\t\telse {\n\t\t\tconst loadData = async () => {\n\t\t\t\tconst startTime = performance.now();\n\t\t\t\ttry {\n\t\t\t\t\tconst loaderJSUrl = getLoaderPath(currentPath, true);\n\t\t\t\t\tconst moduleLoadStart = performance.now();\n\t\t\t\t\tconst module = await dynamicImport(loaderJSUrl)?.catch(() => null);\n\t\t\t\t\tconst moduleLoadTime = performance.now() - moduleLoadStart;\n\t\t\t\t\tif (!module?.loader) {\n\t\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\t\tdata: void 0,\n\t\t\t\t\t\t\thasLoadedOnce: true,\n\t\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst executionStart = performance.now();\n\t\t\t\t\tconst result = await module.loader();\n\t\t\t\t\tconst executionTime = performance.now() - executionStart;\n\t\t\t\t\tconst totalTime = performance.now() - startTime;\n\t\t\t\t\tif (result?.__oneRedirect) {\n\t\t\t\t\t\trecordLoaderTiming?.({\n\t\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\t\tdata: void 0,\n\t\t\t\t\t\t\thasLoadedOnce: true,\n\t\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\trouter.replace(result.__oneRedirect);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (result?.__oneError === 404) {\n\t\t\t\t\t\trecordLoaderTiming?.({\n\t\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst notFoundRoute = findNearestNotFoundRoute(currentPath, routeNode);\n\t\t\t\t\t\tsetNotFoundState({\n\t\t\t\t\t\t\tnotFoundPath: result.__oneNotFoundPath || \"/+not-found\",\n\t\t\t\t\t\t\tnotFoundRouteNode: notFoundRoute || void 0,\n\t\t\t\t\t\t\toriginalPath: currentPath\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\tdata: result,\n\t\t\t\t\t\thasLoadedOnce: true,\n\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t});\n\t\t\t\t\trecordLoaderTiming?.({\n\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t});\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst totalTime = performance.now() - startTime;\n\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\terror: err,\n\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t});\n\t\t\t\t\trecordLoaderTiming?.({\n\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t\tloaderStateEntry.promise = loadData();\n\t\t}\n\t}\n\tif (loaderStateEntry.error && !loaderStateEntry.hasLoadedOnce) throw loaderStateEntry.error;\n\tif (loaderStateEntry.data === void 0 && loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce) throw loaderStateEntry.promise;\n\treturn {\n\t\tdata: loaderStateEntry.data,\n\t\trefetch,\n\t\tstate: loaderStateEntry.state\n\t};\n}\nfunction useLoader(loader) {\n\tconst { data } = useLoaderState(loader);\n\treturn data;\n}\nconst results = /* @__PURE__ */ new Map();\nconst started = /* @__PURE__ */ new Map();\nconst USE_ASYNC_FN_CACHE_MAX = 100;\nfunction setBoundedResults(key, value) {\n\tif (results.size >= USE_ASYNC_FN_CACHE_MAX && !results.has(key)) {\n\t\tconst firstKey = results.keys().next().value;\n\t\tif (firstKey !== void 0) {\n\t\t\tresults.delete(firstKey);\n\t\t\tstarted.delete(firstKey);\n\t\t}\n\t}\n\tresults.set(key, value);\n}\nfunction resetLoaderState() {\n\tresults.clear();\n\tstarted.clear();\n}\nfunction useAsyncFn(val, props) {\n\tconst key = (val ? weakKey(val) : \"\") + JSON.stringify(props);\n\tif (val) {\n\t\tif (!started.get(key)) {\n\t\t\tstarted.set(key, true);\n\t\t\tlet next = val(props);\n\t\t\tif (next instanceof Promise) next = next.then((final) => {\n\t\t\t\tsetBoundedResults(key, final);\n\t\t\t}).catch((err) => {\n\t\t\t\tconsole.error(`Error running loader()`, err);\n\t\t\t\tsetBoundedResults(key, void 0);\n\t\t\t});\n\t\t\tsetBoundedResults(key, next);\n\t\t}\n\t}\n\tconst current = results.get(key);\n\tif (current instanceof Promise) throw current;\n\treturn current;\n}\n\nexport { getLoaderTimingHistory, refetchLoader, refetchMatchLoader, resetLoaderState, setSSRLoaderData, useLoader, useLoaderState };"],"mappings":"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","ignoreList":[]}