X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/cdc8a73914399a401642ca553e9d3d8b2d42db5c..9d465addb74ffb1209dab4b86e45f933bb21c840:/src/store/resources/resources.ts diff --git a/src/store/resources/resources.ts b/src/store/resources/resources.ts index add4efef54..189fd4b167 100644 --- a/src/store/resources/resources.ts +++ b/src/store/resources/resources.ts @@ -3,11 +3,11 @@ // SPDX-License-Identifier: AGPL-3.0 import { Resource } from "~/models/resource"; -import { ResourceKind } from '../../models/resource'; +import { ResourceKind } from '~/models/resource'; export type ResourcesState = { [key: string]: Resource }; -export const getResource = (id: string) => +export const getResource = (id: string) => (state: ResourcesState): T | undefined => state[id] as T; @@ -19,7 +19,7 @@ export const setResource = (id: string, data: T) => export const deleteResource = (id: string) => (state: ResourcesState) => { - const newState = {...state}; + const newState = { ...state }; delete newState[id]; return newState; }; @@ -28,10 +28,14 @@ export const filterResources = (filter: (resource: Resource) => boolean) => (state: ResourcesState) => Object .keys(state) - .map(id => getResource(id)(state)) + .reduce((resources, id) => { + const resource = getResource(id)(state); + return resource + ? [...resources, resource] + : resources; + }, []) .filter(filter); export const filterResourcesByKind = (kind: ResourceKind) => (state: ResourcesState) => filterResources(resource => resource.kind === kind)(state); -