UNPKG

@o3r/core

Version:
94 lines 3.33 kB
export const asyncStoreItemAdapter = { addRequest: (item, requestId) => { return { ...item, requestIds: [...item.requestIds, requestId], isFailure: item.requestIds.length === 0 ? false : item.isFailure, isPending: true }; }, failRequest: (item, requestId) => { const requestIds = requestId ? item.requestIds.filter((id) => id !== requestId) : item.requestIds; return { ...item, isFailure: true, isPending: requestIds.length > 0, requestIds }; }, resolveRequest: (item, requestId) => { const requestIds = requestId ? item.requestIds.filter((id) => id !== requestId) : item.requestIds; return { ...item, requestIds, isPending: requestIds.length > 0 }; }, initialize: (entityItem) => { return { ...entityItem, requestIds: [] }; }, extractAsyncStoreItem: (entityItem) => { return { requestIds: [...entityItem.requestIds], isFailure: entityItem.isFailure, isPending: entityItem.isPending }; }, clearAsyncStoreItem: (entityItem) => { const { isPending, isFailure, ...newResponse } = { ...entityItem, requestIds: [] }; return newResponse; }, merge: (...items) => { return items.reduce((mergedItem, item) => item ? { requestIds: [...mergedItem.requestIds, ...item.requestIds], isFailure: mergedItem.isFailure || item.isFailure, isPending: mergedItem.isPending || item.isPending } : mergedItem, asyncStoreItemAdapter.initialize({})); }, entityStatusAddRequest: (status, subResource, requestId) => { const currentSubStatus = status[subResource] || asyncStoreItemAdapter.initialize({}); return { ...status, [subResource]: asyncStoreItemAdapter.addRequest(currentSubStatus, requestId) }; }, entityStatusResolveRequest: (status, subResource, requestId) => { const currentSubStatus = status[subResource]; return { ...status, [subResource]: currentSubStatus ? asyncStoreItemAdapter.resolveRequest(currentSubStatus, requestId) : { requestIds: [] } }; }, entityStatusFailRequest: (status, subResource, requestId) => { const currentSubStatus = status[subResource]; return { ...status, [subResource]: currentSubStatus ? asyncStoreItemAdapter.failRequest(currentSubStatus, requestId) : { requestIds: [], isFailure: true } }; }, entityStatusResetFailure: (status, subResource) => { const currentSubStatus = status[subResource]; return { ...status, [subResource]: currentSubStatus ? asyncStoreItemAdapter.resetFailureStatus(currentSubStatus) : { requestIds: [] } }; }, resetFailureStatus: (entityItem) => { return { ...entityItem, isFailure: false }; }, setLoadingStatus: (entityItem) => { return { ...entityItem, isPending: true }; } }; //# sourceMappingURL=async.adapter.js.map