From 055bc3c229d95f8e106f486cb35092026f6c8053 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Thu, 28 Jul 2022 10:01:58 +0200 Subject: [PATCH] feat: add pendingLoad --- src/data-fetching/defineLoader.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/data-fetching/defineLoader.ts b/src/data-fetching/defineLoader.ts index 988cd9f3c..67759bcf1 100644 --- a/src/data-fetching/defineLoader.ts +++ b/src/data-fetching/defineLoader.ts @@ -116,6 +116,7 @@ export function defineLoader

, isLazy extends boolean>( error, refresh, invalidate, + pendingLoad, } return Object.assign(commonData, data) @@ -126,6 +127,8 @@ export function defineLoader

, isLazy extends boolean>( let pendingPromise: Promise | undefined | null let currentNavigation: RouteLocationNormalizedLoaded | undefined | null + const pendingLoad = () => pendingPromise + function load(route: RouteLocationNormalizedLoaded, router: Router) { let entry = cache.get(router) const { lazy } = options @@ -329,6 +332,11 @@ export interface _DataLoaderResult { * Invalidates the data so it is reloaded on the next request. */ invalidate: () => void + + /** + * Get the promise of the current loader if there is one, returns a falsy value otherwise. + */ + pendingLoad: () => Promise | undefined | null } export interface _DataLoaderResultLazy extends _DataLoaderResult {