mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-08 10:27:46 +08:00
13 lines
478 B
TypeScript
13 lines
478 B
TypeScript
import { importWithRetry } from '@/utils/importRetry'
|
|
|
|
type PrefetchableRouteLoader<T> = (() => Promise<T>) & {
|
|
prefetch: () => Promise<T>
|
|
}
|
|
|
|
export const view = <T>(loader: () => Promise<T>): PrefetchableRouteLoader<T> => {
|
|
const routeLoader = (() => importWithRetry(loader)) as PrefetchableRouteLoader<T>
|
|
// 预取只做一次原始 import;失败时不得触发导航加载器的清缓存和强刷恢复逻辑。
|
|
routeLoader.prefetch = loader
|
|
return routeLoader
|
|
}
|