@woocommerce/data
Version:
WooCommerce Admin data store and utilities
49 lines (48 loc) • 1.78 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getItemsError = exports.getItemsTotalCount = exports.getItems = void 0;
/**
* External dependencies
*/
const rememo_1 = __importDefault(require("rememo"));
/**
* Internal dependencies
*/
const utils_1 = require("../utils");
const utils_2 = require("./utils");
exports.getItems = (0, rememo_1.default)((state, itemType, query, defaultValue = new Map()) => {
const resourceName = (0, utils_1.getResourceName)(itemType, query);
let ids;
if (state.items[resourceName] &&
typeof state.items[resourceName] === 'object') {
ids = state.items[resourceName]
.data;
}
if (!ids) {
return defaultValue;
}
return ids.reduce((map, id) => {
var _a;
map.set(id, (_a = state.data[itemType]) === null || _a === void 0 ? void 0 : _a[id]);
return map;
}, new Map());
}, (state, itemType, query) => {
const resourceName = (0, utils_1.getResourceName)(itemType, query);
return [state.items[resourceName]];
});
const getItemsTotalCount = (state, itemType, query, defaultValue = 0) => {
const resourceName = (0, utils_2.getTotalCountResourceName)(itemType, query);
const totalCount = state.items.hasOwnProperty(resourceName)
? state.items[resourceName]
: defaultValue;
return totalCount;
};
exports.getItemsTotalCount = getItemsTotalCount;
const getItemsError = (state, itemType, query) => {
const resourceName = (0, utils_1.getResourceName)(itemType, query);
return state.errors[resourceName];
};
exports.getItemsError = getItemsError;