UNPKG

@data-client/core

Version:

Async State Management without the Management. REST, GraphQL, SSE, Websockets, Fetch

29 lines 3.4 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { INVALIDATE } from '../../actionTypes.js'; export function invalidateReducer(state, action) { const endpoints = _extends({}, state.endpoints); const meta = _extends({}, state.meta); const invalidateKey = key => { delete endpoints[key]; const itemMeta = _extends({}, meta[key], { expiresAt: 0, invalidated: true }); delete itemMeta.error; meta[key] = itemMeta; }; if (action.type === INVALIDATE) { invalidateKey(action.key); } else { Object.keys(endpoints).forEach(key => { if (action.testKey(key)) { invalidateKey(key); } }); } return _extends({}, state, { endpoints, meta }); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTlZBTElEQVRFIiwiaW52YWxpZGF0ZVJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsImVuZHBvaW50cyIsIl9leHRlbmRzIiwibWV0YSIsImludmFsaWRhdGVLZXkiLCJrZXkiLCJpdGVtTWV0YSIsImV4cGlyZXNBdCIsImludmFsaWRhdGVkIiwiZXJyb3IiLCJ0eXBlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJ0ZXN0S2V5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvaW52YWxpZGF0ZVJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5WQUxJREFURSB9IGZyb20gJy4uLy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgU3RhdGUsXG4gIEludmFsaWRhdGVBbGxBY3Rpb24sXG4gIEludmFsaWRhdGVBY3Rpb24sXG59IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRhdGVSZWR1Y2VyKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogSW52YWxpZGF0ZUFjdGlvbiB8IEludmFsaWRhdGVBbGxBY3Rpb24sXG4pIHtcbiAgY29uc3QgZW5kcG9pbnRzID0geyAuLi5zdGF0ZS5lbmRwb2ludHMgfTtcbiAgY29uc3QgbWV0YSA9IHsgLi4uc3RhdGUubWV0YSB9O1xuICBjb25zdCBpbnZhbGlkYXRlS2V5ID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgZGVsZXRlIGVuZHBvaW50c1trZXldO1xuICAgIGNvbnN0IGl0ZW1NZXRhID0ge1xuICAgICAgLi4ubWV0YVtrZXldLFxuICAgICAgZXhwaXJlc0F0OiAwLFxuICAgICAgaW52YWxpZGF0ZWQ6IHRydWUsXG4gICAgfTtcbiAgICBkZWxldGUgaXRlbU1ldGEuZXJyb3I7XG4gICAgbWV0YVtrZXldID0gaXRlbU1ldGE7XG4gIH07XG4gIGlmIChhY3Rpb24udHlwZSA9PT0gSU5WQUxJREFURSkge1xuICAgIGludmFsaWRhdGVLZXkoYWN0aW9uLmtleSk7XG4gIH0gZWxzZSB7XG4gICAgT2JqZWN0LmtleXMoZW5kcG9pbnRzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAoYWN0aW9uLnRlc3RLZXkoa2V5KSkge1xuICAgICAgICBpbnZhbGlkYXRlS2V5KGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGVuZHBvaW50cyxcbiAgICBtZXRhLFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsVUFBVSxRQUFRLHNCQUFzQjtBQU9qRCxPQUFPLFNBQVNDLGlCQUFpQkEsQ0FDL0JDLEtBQXFCLEVBQ3JCQyxNQUE4QyxFQUM5QztFQUNBLE1BQU1DLFNBQVMsR0FBQUMsUUFBQSxLQUFRSCxLQUFLLENBQUNFLFNBQVMsQ0FBRTtFQUN4QyxNQUFNRSxJQUFJLEdBQUFELFFBQUEsS0FBUUgsS0FBSyxDQUFDSSxJQUFJLENBQUU7RUFDOUIsTUFBTUMsYUFBYSxHQUFJQyxHQUFXLElBQUs7SUFDckMsT0FBT0osU0FBUyxDQUFDSSxHQUFHLENBQUM7SUFDckIsTUFBTUMsUUFBUSxHQUFBSixRQUFBLEtBQ1RDLElBQUksQ0FBQ0UsR0FBRyxDQUFDO01BQ1pFLFNBQVMsRUFBRSxDQUFDO01BQ1pDLFdBQVcsRUFBRTtJQUFJLEVBQ2xCO0lBQ0QsT0FBT0YsUUFBUSxDQUFDRyxLQUFLO0lBQ3JCTixJQUFJLENBQUNFLEdBQUcsQ0FBQyxHQUFHQyxRQUFRO0VBQ3RCLENBQUM7RUFDRCxJQUFJTixNQUFNLENBQUNVLElBQUksS0FBS2IsVUFBVSxFQUFFO0lBQzlCTyxhQUFhLENBQUNKLE1BQU0sQ0FBQ0ssR0FBRyxDQUFDO0VBQzNCLENBQUMsTUFBTTtJQUNMTSxNQUFNLENBQUNDLElBQUksQ0FBQ1gsU0FBUyxDQUFDLENBQUNZLE9BQU8sQ0FBQ1IsR0FBRyxJQUFJO01BQ3BDLElBQUlMLE1BQU0sQ0FBQ2MsT0FBTyxDQUFDVCxHQUFHLENBQUMsRUFBRTtRQUN2QkQsYUFBYSxDQUFDQyxHQUFHLENBQUM7TUFDcEI7SUFDRixDQUFDLENBQUM7RUFDSjtFQUVBLE9BQUFILFFBQUEsS0FDS0gsS0FBSztJQUNSRSxTQUFTO0lBQ1RFO0VBQUk7QUFFUiIsImlnbm9yZUxpc3QiOltdfQ==