Files
Basilosaurusrex f027651f9b main repo
2025-11-24 18:09:40 +01:00

19 lines
686 B
TypeScript

import { RouteMatcher } from '../../route-matchers/route-matcher';
import { RouteMatcherProvider } from '../route-matcher-provider';
interface LoaderComparable<D> {
load(): Promise<D>;
compare(left: D, right: D): boolean;
}
/**
* This will memoize the matchers if the loaded data is comparable.
*/
export declare abstract class CachedRouteMatcherProvider<M extends RouteMatcher = RouteMatcher, D = any> implements RouteMatcherProvider<M> {
private readonly loader;
private data?;
private cached;
constructor(loader: LoaderComparable<D>);
protected abstract transform(data: D): Promise<ReadonlyArray<M>>;
matchers(): Promise<readonly M[]>;
}
export {};