@magnetarjs/core
Version:
Magnetar core library.
18 lines (17 loc) • 888 B
JavaScript
export function getModifyPayloadFnsMap(...onMaps) {
const _onMaps = onMaps.filter(Boolean);
const writeFns = _onMaps.flatMap((on) => on.write ?? []);
const readFns = _onMaps.flatMap((on) => on.read ?? []);
// const deleteFns = _onMaps.flatMap(on => on.delete ?? [])
const result = {
insert: _onMaps.flatMap((on) => on.insert ?? []).concat(writeFns),
merge: _onMaps.flatMap((on) => on.merge ?? []).concat(writeFns),
assign: _onMaps.flatMap((on) => on.assign ?? []).concat(writeFns),
replace: _onMaps.flatMap((on) => on.replace ?? []).concat(writeFns),
deleteProp: _onMaps.flatMap((on) => on.deleteProp ?? []),
delete: [], // delete has no payload
stream: _onMaps.flatMap((on) => on.stream ?? []).concat(readFns),
fetch: _onMaps.flatMap((on) => on.fetch ?? []).concat(readFns),
};
return result;
}