UNPKG

@wordpress/data

Version:
141 lines (139 loc) 5.42 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/data/src/redux-store/metadata/selectors.js var selectors_exports = {}; __export(selectors_exports, { countSelectorsByStatus: () => countSelectorsByStatus, getCachedResolvers: () => getCachedResolvers, getIsResolving: () => getIsResolving, getResolutionError: () => getResolutionError, getResolutionState: () => getResolutionState, hasFinishedResolution: () => hasFinishedResolution, hasResolutionFailed: () => hasResolutionFailed, hasResolvingSelectors: () => hasResolvingSelectors, hasStartedResolution: () => hasStartedResolution, isResolving: () => isResolving }); module.exports = __toCommonJS(selectors_exports); var import_deprecated = __toESM(require("@wordpress/deprecated")); var import_create_selector = require("../../create-selector"); var import_utils = require("./utils"); function getResolutionState(state, selectorName, args) { const map = state[selectorName]; if (!map) { return; } return map.get((0, import_utils.selectorArgsToStateKey)(args)); } function getIsResolving(state, selectorName, args) { (0, import_deprecated.default)("wp.data.select( store ).getIsResolving", { since: "6.6", version: "6.8", alternative: "wp.data.select( store ).getResolutionState" }); const resolutionState = getResolutionState(state, selectorName, args); return resolutionState && resolutionState.status === "resolving"; } function hasStartedResolution(state, selectorName, args) { return getResolutionState(state, selectorName, args) !== void 0; } function hasFinishedResolution(state, selectorName, args) { const status = getResolutionState(state, selectorName, args)?.status; return status === "finished" || status === "error"; } function hasResolutionFailed(state, selectorName, args) { return getResolutionState(state, selectorName, args)?.status === "error"; } function getResolutionError(state, selectorName, args) { const resolutionState = getResolutionState(state, selectorName, args); return resolutionState?.status === "error" ? resolutionState.error : null; } function isResolving(state, selectorName, args) { return getResolutionState(state, selectorName, args)?.status === "resolving"; } function getCachedResolvers(state) { return state; } function hasResolvingSelectors(state) { return Object.values(state).some( (selectorState) => ( /** * This uses the internal `_map` property of `EquivalentKeyMap` for * optimization purposes, since the `EquivalentKeyMap` implementation * does not support a `.values()` implementation. * * @see https://github.com/aduth/equivalent-key-map */ Array.from(selectorState._map.values()).some( (resolution) => resolution[1]?.status === "resolving" ) ) ); } var countSelectorsByStatus = (0, import_create_selector.createSelector)( (state) => { const selectorsByStatus = {}; Object.values(state).forEach( (selectorState) => ( /** * This uses the internal `_map` property of `EquivalentKeyMap` for * optimization purposes, since the `EquivalentKeyMap` implementation * does not support a `.values()` implementation. * * @see https://github.com/aduth/equivalent-key-map */ Array.from(selectorState._map.values()).forEach( (resolution) => { const currentStatus = resolution[1]?.status ?? "error"; if (!selectorsByStatus[currentStatus]) { selectorsByStatus[currentStatus] = 0; } selectorsByStatus[currentStatus]++; } ) ) ); return selectorsByStatus; }, (state) => [state] ); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { countSelectorsByStatus, getCachedResolvers, getIsResolving, getResolutionError, getResolutionState, hasFinishedResolution, hasResolutionFailed, hasResolvingSelectors, hasStartedResolution, isResolving }); //# sourceMappingURL=selectors.js.map