bpms_site/.svn/pristine/2d/2dd4fe620c17a3c06c36aad151c369906004df4a.svn-base
2025-11-02 16:38:49 +03:30

19 lines
686 B
Plaintext

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 {};