@data-client/core
Version:
Async State Management without the Management. REST, GraphQL, SSE, Websockets, Fetch
18 lines (16 loc) • 520 B
text/typescript
import { createOptimistic } from '../../controller/actions/createOptimistic.js';
import type { State, FetchAction } from '../../types.js';
export function fetchReducer(state: State<unknown>, action: FetchAction) {
if (action.endpoint.getOptimisticResponse && action.endpoint.sideEffect) {
const setAction = createOptimistic(
action.endpoint,
action.args,
action.meta.fetchedAt,
);
return {
...state,
optimistic: [...state.optimistic, setAction],
};
}
return state;
}