|
1 | 1 | import Facade from '@js-entity-repos/core/dist/Facade'; |
2 | 2 | import Entity from '@js-entity-repos/core/dist/types/Entity'; |
3 | | -import FacadeConfig from './FacadeConfig'; |
4 | 3 | import FactoryConfig from './FactoryConfig'; |
5 | | -import countEntities from './functions/countEntities'; |
6 | | -import createEntity from './functions/createEntity'; |
7 | | -import getEntities from './functions/getEntities'; |
8 | | -import getEntity from './functions/getEntity'; |
9 | | -import patchEntity from './functions/patchEntity'; |
10 | | -import removeEntities from './functions/removeEntities'; |
11 | | -import removeEntity from './functions/removeEntity'; |
12 | | -import replaceEntity from './functions/replaceEntity'; |
13 | 4 | import createPromiser from './utils/createPromiser'; |
| 5 | +import syncFactory from './utils/syncFactory'; |
14 | 6 |
|
15 | 7 | export default <E extends Entity>(factoryConfig: FactoryConfig<E>): Facade<E> => { |
16 | | - // tslint:disable-next-line:no-let |
17 | | - let entities: E[] = []; |
18 | | - const facadeConfig: FacadeConfig<E> = { |
19 | | - defaultPaginationLimit: 10, |
20 | | - getEntities: () => entities, |
21 | | - setEntities: (nextEntities) => entities = nextEntities, |
22 | | - ...factoryConfig, |
23 | | - }; |
| 8 | + const syncFacade = syncFactory(factoryConfig); |
24 | 9 | return { |
25 | | - countEntities: createPromiser(countEntities<E>(facadeConfig)), |
26 | | - createEntity: createPromiser(createEntity<E>(facadeConfig)), |
27 | | - getEntities: createPromiser(getEntities<E>(facadeConfig)), |
28 | | - getEntity: createPromiser(getEntity<E>(facadeConfig)), |
29 | | - patchEntity: createPromiser(patchEntity<E>(facadeConfig)), |
30 | | - removeEntities: createPromiser(removeEntities<E>(facadeConfig)), |
31 | | - removeEntity: createPromiser(removeEntity<E>(facadeConfig)), |
32 | | - replaceEntity: createPromiser(replaceEntity<E>(facadeConfig)), |
| 10 | + countEntities: createPromiser(syncFacade.countEntities), |
| 11 | + createEntity: createPromiser(syncFacade.createEntity), |
| 12 | + getEntities: createPromiser(syncFacade.getEntities), |
| 13 | + getEntity: createPromiser(syncFacade.getEntity), |
| 14 | + patchEntity: createPromiser(syncFacade.patchEntity), |
| 15 | + removeEntities: createPromiser(syncFacade.removeEntities), |
| 16 | + removeEntity: createPromiser(syncFacade.removeEntity), |
| 17 | + replaceEntity: createPromiser(syncFacade.replaceEntity), |
33 | 18 | }; |
34 | 19 | }; |
0 commit comments