export type Loader = () => Promise export const onceLoader = (loader: Loader): Loader => { let cache: T | undefined return async () => { if (cache === undefined) { cache = await loader() } return cache } }