bpms_site/.svn/pristine/d5/d559435f94b08812a6bf6e37d073f4d7c8bfc28d.svn-base
2025-11-02 16:38:49 +03:30

22 lines
737 B
Plaintext

/**
* This will memoize the matchers if the loaded data is comparable.
*/ export class CachedRouteMatcherProvider {
constructor(loader){
this.loader = loader;
this.cached = [];
}
async matchers() {
const data = await this.loader.load();
if (!data) return [];
// Return the cached matchers if the data has not changed.
if (this.data && this.loader.compare(this.data, data)) return this.cached;
this.data = data;
// Transform the manifest into matchers.
const matchers = await this.transform(data);
// Cache the matchers.
this.cached = matchers;
return matchers;
}
}
//# sourceMappingURL=cached-route-matcher-provider.js.map