ft_transcendence/openapi-template/ApiEntitiesReducer.mustache
Maieul BOYER 5dd6067c95 feat(openapi): Add modified typescript-fetch template
This template is modified from the original one, to handle multiple
status-code handling of response.

Don't ask me how they work, I don't quite understand them in depth...
2025-11-10 18:34:22 +01:00

21 lines
983 B
Text

import {ApiEntitiesRecord} from "./ApiEntitiesRecord{{importFileExtension}}";
import {ReducerBuilder} from "redux-ts-simple";
import {normalizedEntities} from "./runtimeSagasAndRecords{{importFileExtension}}";
export const ApiEntitiesReducer = new ReducerBuilder(ApiEntitiesRecord())
.on(normalizedEntities, (state, action): ApiEntitiesRecord => {
const {entities} = action.payload;
return state.withMutations(mutableState => {
for (const entityKey in entities) {
const entityMap = entities[entityKey];
const currentEntityMap = mutableState.get(entityKey as any);
if (currentEntityMap) {
let mergedEntityMap = currentEntityMap.mergeDeep(entityMap);
if (!mergedEntityMap.equals(currentEntityMap)) {
mutableState.set(entityKey as any, mergedEntityMap);
}
}
}
});
})
.build();