UNPKG

first-npm-package-nicule

Version:

This isi first npm package

38 lines (33 loc) 1.22 kB
import { Action, ActionReducerMap } from '@ngrx/store'; import { HypermediaActions, HypermediaActionTypes, ReceivedHypermedia } from '../actions'; import { Hypermedia } from 'first-npm-package-nicule/core'; export const hypermediaReducers: ActionReducerMap<HypermediaState, HypermediaActions> = { hypermedia: hypermediaReducer }; export interface HypermediaState { hypermedia: HypermediaScopePathMap; } export interface HypermediaScopePathMap { [scope: string]: { [path: string]: { data: Hypermedia download?: number, upload?: number } }; } export function hypermediaReducer(state: HypermediaScopePathMap = {}, action: HypermediaActions): HypermediaScopePathMap { switch (action.type) { case HypermediaActionTypes.RECEIVED_HYPERMEDIA: return { ...state, [action.payload.scope]: { ...state[action.payload.scope], [action.payload.path]: { data: (action as ReceivedHypermedia).payload.hypermedia } } }; default: return state; } }