@wordpress/data
Version:
Data module for WordPress.
30 lines (29 loc) • 1.06 kB
JavaScript
// packages/data/src/resolvers-cache-middleware.js
var createResolversCacheMiddleware = (registry, storeName) => () => (next) => (action) => {
const resolvers = registry.select(storeName).getCachedResolvers();
const resolverEntries = Object.entries(resolvers);
resolverEntries.forEach(([selectorName, resolversByArgs]) => {
const resolver = registry.stores[storeName]?.resolvers?.[selectorName];
if (!resolver || !resolver.shouldInvalidate) {
return;
}
resolversByArgs.forEach((value, args) => {
if (value === void 0) {
return;
}
if (value.status !== "finished" && value.status !== "error") {
return;
}
if (!resolver.shouldInvalidate(action, ...args)) {
return;
}
registry.dispatch(storeName).invalidateResolution(selectorName, args);
});
});
return next(action);
};
var resolvers_cache_middleware_default = createResolversCacheMiddleware;
export {
resolvers_cache_middleware_default as default
};
//# sourceMappingURL=resolvers-cache-middleware.js.map