UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

131 lines 12.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { __stores__ } from './stores'; import { isNil } from './isNil'; import { AkitaError } from './errors'; /** @enum {number} */ var StoreActions = { Update: 0, AddEntities: 1, SetEntities: 2, UpdateEntities: 3, RemoveEntities: 4, UpsertEntities: 5, }; export { StoreActions }; StoreActions[StoreActions.Update] = 'Update'; StoreActions[StoreActions.AddEntities] = 'AddEntities'; StoreActions[StoreActions.SetEntities] = 'SetEntities'; StoreActions[StoreActions.UpdateEntities] = 'UpdateEntities'; StoreActions[StoreActions.RemoveEntities] = 'RemoveEntities'; StoreActions[StoreActions.UpsertEntities] = 'UpsertEntities'; /** * @record * @template Entity */ function RunStoreActionSetEntities() { } if (false) { /** @type {?} */ RunStoreActionSetEntities.prototype.payload; } /** * @record * @template Entity */ function RunStoreActionAddEntities() { } if (false) { /** @type {?} */ RunStoreActionAddEntities.prototype.payload; } /** * @record * @template Entity */ function RunStoreActionUpdateEntities() { } if (false) { /** @type {?} */ RunStoreActionUpdateEntities.prototype.payload; } /** * @record * @template Entity */ function RunStoreActionRemoveEntities() { } if (false) { /** @type {?} */ RunStoreActionRemoveEntities.prototype.payload; } /** * @record * @template Entity */ function RunStoreActionUpsertEntities() { } if (false) { /** @type {?} */ RunStoreActionUpsertEntities.prototype.payload; } /** * @record * @template State */ function RunStoreActionUpdate() { } if (false) { /** @type {?} */ RunStoreActionUpdate.prototype.payload; } /** * @template EntityOrState * @param {?} storeName * @param {?} action * @param {?} params * @return {?} */ export function runStoreAction(storeName, action, params) { /** @type {?} */ var store = __stores__[storeName]; if (isNil(store)) { throw new AkitaError(storeName + " doesn't exist"); } switch (action) { case StoreActions.SetEntities: { var payload = (/** @type {?} */ (params)).payload; ((/** @type {?} */ (store))).set(payload.data); return; } case StoreActions.AddEntities: { var payload = (/** @type {?} */ (params)).payload; ((/** @type {?} */ (store))).add(payload.data, payload.params); return; } case StoreActions.UpdateEntities: { var payload = (/** @type {?} */ (params)).payload; ((/** @type {?} */ (store))).update(payload.entityIds, payload.data); return; } case StoreActions.RemoveEntities: { var payload = (/** @type {?} */ (params)).payload; ((/** @type {?} */ (store))).remove(payload.entityIds); return; } case StoreActions.UpsertEntities: { var payload = (/** @type {?} */ (params)).payload; if (payload.entityIds) { ((/** @type {?} */ (store))).upsert(payload.entityIds, payload.data); } else if (Array.isArray(payload.data)) { ((/** @type {?} */ (store))).upsertMany(payload.data); } else { ((/** @type {?} */ (store))).upsertMany([payload.data]); } } case StoreActions.Update: { var payload = (/** @type {?} */ (params)).payload; ((/** @type {?} */ (store))).update(payload.data); return; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuU3RvcmVBY3Rpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvcnVuU3RvcmVBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7SUFHcEMsU0FBTTtJQUNOLGNBQVc7SUFDWCxjQUFXO0lBQ1gsaUJBQWM7SUFDZCxpQkFBYztJQUNkLGlCQUFjOzs7Ozs7Ozs7Ozs7O0FBR2hCLHdDQUlDOzs7SUFIQyw0Q0FFRTs7Ozs7O0FBR0osd0NBS0M7OztJQUpDLDRDQUdFOzs7Ozs7QUFHSiwyQ0FLQzs7O0lBSkMsK0NBR0U7Ozs7OztBQUdKLDJDQUlDOzs7SUFIQywrQ0FFRTs7Ozs7O0FBR0osMkNBS0M7OztJQUpDLCtDQUdFOzs7Ozs7QUFHSixtQ0FJQzs7O0lBSEMsdUNBRUU7Ozs7Ozs7OztBQXNFSixNQUFNLFVBQVUsY0FBYyxDQUM1QixTQUFpQixFQUNqQixNQUFvQixFQUNwQixNQUsrQzs7UUFFekMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFFbkMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsTUFBTSxJQUFJLFVBQVUsQ0FBSSxTQUFTLG1CQUFnQixDQUFDLENBQUM7S0FDcEQ7SUFFRCxRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JCLElBQUEsNkNBQU87WUFDZixDQUFDLG1CQUFBLEtBQUssRUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxPQUFPO1NBQ1I7UUFDRCxLQUFLLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyQixJQUFBLDZDQUFPO1lBQ2YsQ0FBQyxtQkFBQSxLQUFLLEVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6RCxPQUFPO1NBQ1I7UUFFRCxLQUFLLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN4QixJQUFBLDZDQUFPO1lBQ2YsQ0FBQyxtQkFBQSxLQUFLLEVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvRCxPQUFPO1NBQ1I7UUFFRCxLQUFLLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN4QixJQUFBLDZDQUFPO1lBQ2YsQ0FBQyxtQkFBQSxLQUFLLEVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTztTQUNSO1FBRUQsS0FBSyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDeEIsSUFBQSw2Q0FBTztZQUNmLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDckIsQ0FBQyxtQkFBQSxLQUFLLEVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoRTtpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0QyxDQUFDLG1CQUFBLEtBQUssRUFBZSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqRDtpQkFBTTtnQkFDTCxDQUFDLG1CQUFBLEtBQUssRUFBZSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbkQ7U0FDRjtRQUVELEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hCLElBQUEsNkNBQU87WUFDZixDQUFDLG1CQUFBLEtBQUssRUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxPQUFPO1NBQ1I7S0FDRjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfX3N0b3Jlc19fIH0gZnJvbSAnLi9zdG9yZXMnO1xuaW1wb3J0IHsgSURTIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBZGRFbnRpdGllc09wdGlvbnMgfSBmcm9tICcuL2FkZEVudGl0aWVzJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9lbnRpdHlTdG9yZSc7XG5pbXBvcnQgeyBTZXRFbnRpdGllcyB9IGZyb20gJy4vc2V0RW50aXRpZXMnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuL2lzTmlsJztcbmltcG9ydCB7IEFraXRhRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5cbmV4cG9ydCBlbnVtIFN0b3JlQWN0aW9ucyB7XG4gIFVwZGF0ZSxcbiAgQWRkRW50aXRpZXMsXG4gIFNldEVudGl0aWVzLFxuICBVcGRhdGVFbnRpdGllcyxcbiAgUmVtb3ZlRW50aXRpZXMsXG4gIFVwc2VydEVudGl0aWVzXG59XG5cbmludGVyZmFjZSBSdW5TdG9yZUFjdGlvblNldEVudGl0aWVzPEVudGl0eSA9IGFueT4ge1xuICBwYXlsb2FkOiB7XG4gICAgZGF0YTogU2V0RW50aXRpZXM8RW50aXR5PjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFJ1blN0b3JlQWN0aW9uQWRkRW50aXRpZXM8RW50aXR5ID0gYW55PiB7XG4gIHBheWxvYWQ6IHtcbiAgICBkYXRhOiBFbnRpdHlbXSB8IEVudGl0eTtcbiAgICBwYXJhbXM/OiBBZGRFbnRpdGllc09wdGlvbnM7XG4gIH07XG59XG5cbmludGVyZmFjZSBSdW5TdG9yZUFjdGlvblVwZGF0ZUVudGl0aWVzPEVudGl0eSA9IGFueT4ge1xuICBwYXlsb2FkOiB7XG4gICAgZGF0YTogUGFydGlhbDxFbnRpdHk+O1xuICAgIGVudGl0eUlkczogSURTO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUnVuU3RvcmVBY3Rpb25SZW1vdmVFbnRpdGllczxFbnRpdHkgPSBhbnk+IHtcbiAgcGF5bG9hZDoge1xuICAgIGVudGl0eUlkczogSURTO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUnVuU3RvcmVBY3Rpb25VcHNlcnRFbnRpdGllczxFbnRpdHkgPSBhbnk+IHtcbiAgcGF5bG9hZDoge1xuICAgIGRhdGE6IFBhcnRpYWw8RW50aXR5PltdIHwgUGFydGlhbDxFbnRpdHk+O1xuICAgIGVudGl0eUlkcz86IElEUztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFJ1blN0b3JlQWN0aW9uVXBkYXRlPFN0YXRlID0gYW55PiB7XG4gIHBheWxvYWQ6IHtcbiAgICBkYXRhOiBQYXJ0aWFsPFN0YXRlPjtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZXhhbXBsZVxuICpcbiAqIHJ1blN0b3JlQWN0aW9uKCdib29rcycsIFN0b3JlQWN0aW9ucy5VcGRhdGUsIHtcbiAqICAgcGF5bG9hZDoge1xuICogICAgZGF0YTogeyBmaWx0ZXI6ICdOZXcgZmlsdGVyJyB9XG4gKiAgIH1cbiAqIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuU3RvcmVBY3Rpb248U3RhdGUgPSBhbnk+KHN0b3JlTmFtZTogc3RyaW5nLCBhY3Rpb246IFN0b3JlQWN0aW9ucy5VcGRhdGUsIHBhcmFtczogUnVuU3RvcmVBY3Rpb25VcGRhdGU8U3RhdGU+KTtcbi8qKlxuICogQGV4YW1wbGVcbiAqXG4gKiBydW5TdG9yZUFjdGlvbignYm9va3MnLCBTdG9yZUFjdGlvbnMuUmVtb3ZlRW50aXRpZXMsIHtcbiAqICAgcGF5bG9hZDoge1xuICogICAgZW50aXR5SWRzOiAyXG4gKiAgIH1cbiAqIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuU3RvcmVBY3Rpb248RW50aXR5ID0gYW55PihzdG9yZU5hbWU6IHN0cmluZywgYWN0aW9uOiBTdG9yZUFjdGlvbnMuUmVtb3ZlRW50aXRpZXMsIHBhcmFtczogUnVuU3RvcmVBY3Rpb25SZW1vdmVFbnRpdGllczxFbnRpdHk+KTtcbi8qKlxuICogQGV4YW1wbGVcbiAqXG4gKiBydW5TdG9yZUFjdGlvbignYm9va3MnLCBTdG9yZUFjdGlvbnMuVXBkYXRlRW50aXRpZXMsIHtcbiAqICAgcGF5bG9hZDoge1xuICogICAgZGF0YTogeyB0aXRsZTogJ05ldyB0aXRsZScgfSxcbiAqICAgIGVudGl0eUlkczogMlxuICogICB9XG4gKiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blN0b3JlQWN0aW9uPEVudGl0eSA9IGFueT4oc3RvcmVOYW1lOiBzdHJpbmcsIGFjdGlvbjogU3RvcmVBY3Rpb25zLlVwZGF0ZUVudGl0aWVzLCBwYXJhbXM6IFJ1blN0b3JlQWN0aW9uVXBkYXRlRW50aXRpZXM8RW50aXR5Pik7XG4vKipcbiAqIEBleGFtcGxlXG4gKlxuICogcnVuU3RvcmVBY3Rpb24oJ2Jvb2tzJywgU3RvcmVBY3Rpb25zLlNldEVudGl0aWVzLCB7XG4gKiAgIHBheWxvYWQ6IHtcbiAqICAgIGRhdGE6IFt7IGlkOiAxIH0sIHsgaWQ6IDIgfV1cbiAqICAgfVxuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5TdG9yZUFjdGlvbjxFbnRpdHkgPSBhbnk+KHN0b3JlTmFtZTogc3RyaW5nLCBhY3Rpb246IFN0b3JlQWN0aW9ucy5TZXRFbnRpdGllcywgcGFyYW1zOiBSdW5TdG9yZUFjdGlvblNldEVudGl0aWVzPEVudGl0eT4pO1xuLyoqXG4gKiBAZXhhbXBsZVxuICpcbiAqIHJ1blN0b3JlQWN0aW9uKCdib29rcycsIFN0b3JlQWN0aW9ucy5BZGRFbnRpdGllcywge1xuICogICBwYXlsb2FkOiB7XG4gKiAgICBkYXRhOiB7IGlkOiAxIH1cbiAqICAgfVxuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5TdG9yZUFjdGlvbjxFbnRpdHkgPSBhbnk+KHN0b3JlTmFtZTogc3RyaW5nLCBhY3Rpb246IFN0b3JlQWN0aW9ucy5BZGRFbnRpdGllcywgcGFyYW1zOiBSdW5TdG9yZUFjdGlvbkFkZEVudGl0aWVzPEVudGl0eT4pO1xuLyoqXG4gKiBAZXhhbXBsZVxuICpcbiAqIHJ1blN0b3JlQWN0aW9uKCdib29rcycsIFN0b3JlQWN0aW9ucy5VcHNlcnRFbnRpdGllcywge1xuICogICBwYXlsb2FkOiB7XG4gKiAgICBkYXRhOiB7IHRpdGxlOiAnTmV3IFRpdGxlJyB9LFxuICogICAgZW50aXR5SWRzOiBbMSwgMl1cbiAqICAgfVxuICogfSk7XG4gKiBydW5TdG9yZUFjdGlvbignYm9va3MnLCBTdG9yZUFjdGlvbnMuVXBzZXJ0RW50aXRpZXMsIHtcbiAqICAgcGF5bG9hZDoge1xuICogICAgZGF0YTogW3sgaWQ6IDIsIHRpdGxlOiAnTmV3IFRpdGxlJyB9LCB7IGlkOiAzLCB0aXRsZTogJ0Fub3RoZXIgdGl0bGUnfV0sXG4gKiAgIH1cbiAqIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuU3RvcmVBY3Rpb248RW50aXR5ID0gYW55PihzdG9yZU5hbWU6IHN0cmluZywgYWN0aW9uOiBTdG9yZUFjdGlvbnMuVXBzZXJ0RW50aXRpZXMsIHBhcmFtczogUnVuU3RvcmVBY3Rpb25VcHNlcnRFbnRpdGllczxFbnRpdHk+KTtcbmV4cG9ydCBmdW5jdGlvbiBydW5TdG9yZUFjdGlvbjxFbnRpdHlPclN0YXRlID0gYW55PihcbiAgc3RvcmVOYW1lOiBzdHJpbmcsXG4gIGFjdGlvbjogU3RvcmVBY3Rpb25zLFxuICBwYXJhbXM6XG4gICAgfCBSdW5TdG9yZUFjdGlvblNldEVudGl0aWVzPEVudGl0eU9yU3RhdGU+XG4gICAgfCBSdW5TdG9yZUFjdGlvbkFkZEVudGl0aWVzPEVudGl0eU9yU3RhdGU+XG4gICAgfCBSdW5TdG9yZUFjdGlvblJlbW92ZUVudGl0aWVzPEVudGl0eU9yU3RhdGU+XG4gICAgfCBSdW5TdG9yZUFjdGlvblVwZGF0ZUVudGl0aWVzPEVudGl0eU9yU3RhdGU+XG4gICAgfCBSdW5TdG9yZUFjdGlvblVwc2VydEVudGl0aWVzPEVudGl0eU9yU3RhdGU+XG4pIHtcbiAgY29uc3Qgc3RvcmUgPSBfX3N0b3Jlc19fW3N0b3JlTmFtZV07XG5cbiAgaWYgKGlzTmlsKHN0b3JlKSkge1xuICAgIHRocm93IG5ldyBBa2l0YUVycm9yKGAke3N0b3JlTmFtZX0gZG9lc24ndCBleGlzdGApO1xuICB9XG5cbiAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICBjYXNlIFN0b3JlQWN0aW9ucy5TZXRFbnRpdGllczoge1xuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBwYXJhbXMgYXMgUnVuU3RvcmVBY3Rpb25TZXRFbnRpdGllcztcbiAgICAgIChzdG9yZSBhcyBFbnRpdHlTdG9yZSkuc2V0KHBheWxvYWQuZGF0YSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNhc2UgU3RvcmVBY3Rpb25zLkFkZEVudGl0aWVzOiB7XG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IHBhcmFtcyBhcyBSdW5TdG9yZUFjdGlvbkFkZEVudGl0aWVzO1xuICAgICAgKHN0b3JlIGFzIEVudGl0eVN0b3JlKS5hZGQocGF5bG9hZC5kYXRhLCBwYXlsb2FkLnBhcmFtcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2FzZSBTdG9yZUFjdGlvbnMuVXBkYXRlRW50aXRpZXM6IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gcGFyYW1zIGFzIFJ1blN0b3JlQWN0aW9uVXBkYXRlRW50aXRpZXM7XG4gICAgICAoc3RvcmUgYXMgRW50aXR5U3RvcmUpLnVwZGF0ZShwYXlsb2FkLmVudGl0eUlkcywgcGF5bG9hZC5kYXRhKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIFN0b3JlQWN0aW9ucy5SZW1vdmVFbnRpdGllczoge1xuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBwYXJhbXMgYXMgUnVuU3RvcmVBY3Rpb25SZW1vdmVFbnRpdGllcztcbiAgICAgIChzdG9yZSBhcyBFbnRpdHlTdG9yZSkucmVtb3ZlKHBheWxvYWQuZW50aXR5SWRzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIFN0b3JlQWN0aW9ucy5VcHNlcnRFbnRpdGllczoge1xuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBwYXJhbXMgYXMgUnVuU3RvcmVBY3Rpb25VcHNlcnRFbnRpdGllcztcbiAgICAgIGlmIChwYXlsb2FkLmVudGl0eUlkcykge1xuICAgICAgICAoc3RvcmUgYXMgRW50aXR5U3RvcmUpLnVwc2VydChwYXlsb2FkLmVudGl0eUlkcywgcGF5bG9hZC5kYXRhKTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXlsb2FkLmRhdGEpKSB7XG4gICAgICAgIChzdG9yZSBhcyBFbnRpdHlTdG9yZSkudXBzZXJ0TWFueShwYXlsb2FkLmRhdGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKHN0b3JlIGFzIEVudGl0eVN0b3JlKS51cHNlcnRNYW55KFtwYXlsb2FkLmRhdGFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlIFN0b3JlQWN0aW9ucy5VcGRhdGU6IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gcGFyYW1zIGFzIFJ1blN0b3JlQWN0aW9uVXBkYXRlO1xuICAgICAgKHN0b3JlIGFzIEVudGl0eVN0b3JlKS51cGRhdGUocGF5bG9hZC5kYXRhKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==