UNPKG

@woocommerce/data

Version:
39 lines (38 loc) 1.26 kB
/** * External dependencies */ import { registerStore } from '@wordpress/data'; /** * Internal dependencies */ import { createSelectors } from './selectors'; import { createDispatchActions } from './actions'; import defaultControls from '../controls'; import { createResolvers } from './resolvers'; import { createReducer } from './reducer'; export const createCrudDataStore = ({ storeName, resourceName, namespace, pluralResourceName, storeConfig = {}, }) => { const crudActions = createDispatchActions({ resourceName, namespace, }); const crudResolvers = createResolvers({ storeName, resourceName, pluralResourceName, namespace, }); const crudSelectors = createSelectors({ resourceName, pluralResourceName, namespace, }); const { reducer, actions = {}, selectors = {}, resolvers = {}, controls = {}, } = storeConfig; const crudReducer = createReducer(reducer); registerStore(storeName, { reducer: crudReducer, actions: { ...crudActions, ...actions }, selectors: { ...crudSelectors, ...selectors }, resolvers: { ...crudResolvers, ...resolvers }, controls: { ...defaultControls, ...controls }, }); };