UNPKG

@castore/event-storage-adapter-redux

Version:

DRY Castore EventStorageAdapter implementation using a Redux store

74 lines (56 loc) 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useAggregateEvents = void 0; var _reactRedux = require("react-redux"); var _adapter = require("../adapter"); var _reduxEventStorageAdapterNotFound = require("../errors/reduxEventStorageAdapterNotFound"); var _reduxStateNotFound = require("../errors/reduxStateNotFound"); var useAggregateEvents = function useAggregateEvents(eventStore, aggregateId) { var _useSelector; var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, minVersion = _ref.minVersion, maxVersion = _ref.maxVersion, reverse = _ref.reverse, limit = _ref.limit; var events = (_useSelector = (0, _reactRedux.useSelector)(function (state) { var eventStorageAdapter = eventStore.getEventStorageAdapter(); if (!(eventStorageAdapter instanceof _adapter.ReduxEventStorageAdapter)) { throw new _reduxEventStorageAdapterNotFound.ReduxEventStorageAdapterNotFoundError({ eventStoreId: eventStore.eventStoreId }); } var eventStoreSliceName = eventStorageAdapter.eventStoreSliceName; var eventStoreState = state[eventStoreSliceName]; if (!eventStoreState) { throw new _reduxStateNotFound.ReduxStateNotFoundError({ eventStoreSliceName: eventStoreSliceName }); } return eventStoreState.eventsByAggregateId[aggregateId]; })) !== null && _useSelector !== void 0 ? _useSelector : []; if (minVersion !== undefined) { events = events.filter(function (_ref2) { var version = _ref2.version; return version >= minVersion; }); } if (maxVersion !== undefined) { events = events.filter(function (_ref3) { var version = _ref3.version; return version <= maxVersion; }); } if (reverse === true) { events = events.reverse(); } if (limit !== undefined) { events = events.slice(0, limit); } return { events: events }; }; exports.useAggregateEvents = useAggregateEvents; //# sourceMappingURL=useAggregateEvents.js.map