@wordpress/core-data
Version:
Access to and manipulation of core WordPress entities.
118 lines (117 loc) • 4.36 kB
JavaScript
// packages/core-data/src/index.js
import { createReduxStore, register } from "@wordpress/data";
import reducer from "./reducer";
import * as selectors from "./selectors";
import * as privateSelectors from "./private-selectors";
import * as actions from "./actions";
import * as privateActions from "./private-actions";
import * as resolvers from "./resolvers";
import createLocksActions from "./locks/actions";
import {
rootEntitiesConfig,
additionalEntityConfigLoaders,
getMethodName
} from "./entities";
import { STORE_NAME } from "./name";
import { unlock } from "./lock-unlock";
import { dynamicActions, dynamicSelectors } from "./dynamic-entities";
import logEntityDeprecation from "./utils/log-entity-deprecation";
import { default as default2 } from "./entity-provider";
export * from "./entity-provider";
export * from "./entity-types";
export * from "./fetch";
export * from "./hooks";
export * from "./private-apis";
var entitiesConfig = [
...rootEntitiesConfig,
...additionalEntityConfigLoaders.filter((config) => !!config.name)
];
var entitySelectors = entitiesConfig.reduce((result, entity) => {
const { kind, name, plural } = entity;
const getEntityRecordMethodName = getMethodName(kind, name);
result[getEntityRecordMethodName] = (state, key, query) => {
logEntityDeprecation(kind, name, getEntityRecordMethodName, {
isShorthandSelector: true,
alternativeFunctionName: "getEntityRecord"
});
return selectors.getEntityRecord(state, kind, name, key, query);
};
if (plural) {
const getEntityRecordsMethodName = getMethodName(kind, plural, "get");
result[getEntityRecordsMethodName] = (state, query) => {
logEntityDeprecation(kind, name, getEntityRecordsMethodName, {
isShorthandSelector: true,
alternativeFunctionName: "getEntityRecords"
});
return selectors.getEntityRecords(state, kind, name, query);
};
}
return result;
}, {});
var entityResolvers = entitiesConfig.reduce((result, entity) => {
const { kind, name, plural } = entity;
const getEntityRecordMethodName = getMethodName(kind, name);
result[getEntityRecordMethodName] = (key, query) => {
logEntityDeprecation(kind, name, getEntityRecordMethodName, {
isShorthandSelector: true,
alternativeFunctionName: "getEntityRecord"
});
return resolvers.getEntityRecord(kind, name, key, query);
};
if (plural) {
const getEntityRecordsMethodName = getMethodName(kind, plural, "get");
result[getEntityRecordsMethodName] = (...args) => {
logEntityDeprecation(kind, plural, getEntityRecordsMethodName, {
isShorthandSelector: true,
alternativeFunctionName: "getEntityRecords"
});
return resolvers.getEntityRecords(kind, name, ...args);
};
result[getEntityRecordsMethodName].shouldInvalidate = (action) => resolvers.getEntityRecords.shouldInvalidate(action, kind, name);
}
return result;
}, {});
var entityActions = entitiesConfig.reduce((result, entity) => {
const { kind, name } = entity;
const saveEntityRecordMethodName = getMethodName(kind, name, "save");
result[saveEntityRecordMethodName] = (record, options) => {
logEntityDeprecation(kind, name, saveEntityRecordMethodName, {
isShorthandSelector: true,
alternativeFunctionName: "saveEntityRecord"
});
return actions.saveEntityRecord(kind, name, record, options);
};
const deleteEntityRecordMethodName = getMethodName(kind, name, "delete");
result[deleteEntityRecordMethodName] = (key, query, options) => {
logEntityDeprecation(kind, name, deleteEntityRecordMethodName, {
isShorthandSelector: true,
alternativeFunctionName: "deleteEntityRecord"
});
return actions.deleteEntityRecord(kind, name, key, query, options);
};
return result;
}, {});
var storeConfig = () => ({
reducer,
actions: {
...dynamicActions,
...actions,
...entityActions,
...createLocksActions()
},
selectors: {
...dynamicSelectors,
...selectors,
...entitySelectors
},
resolvers: { ...resolvers, ...entityResolvers }
});
var store = createReduxStore(STORE_NAME, storeConfig());
unlock(store).registerPrivateSelectors(privateSelectors);
unlock(store).registerPrivateActions(privateActions);
register(store);
export {
default2 as EntityProvider,
store
};
//# sourceMappingURL=index.js.map