UNPKG

@equinor/fusion-observable

Version:
18 lines 762 B
/** * Maps action definitions to a subject {@link FlowSubject} * * @param actions - object of named action * @param subject - target subject to map actions to * @returns object of callable action which maps to provided subject */ export const actionMapper = (actions, // eslint-disable-next-line @typescript-eslint/no-explicit-any subject) => Object.entries(actions).reduce((cur, [prop, fnOrActions]) => Object.assign(cur, { [prop]: typeof fnOrActions === 'function' ? /** if value is a function, call it 🤙🏻 */ (...args) => subject.next(fnOrActions(...args)) : /** extract child actions */ actionMapper(fnOrActions, subject), }), {}); export default actionMapper; //# sourceMappingURL=action-mapper.js.map