@equinor/fusion-observable
Version:
24 lines • 1.14 kB
JavaScript
/* eslint-disable @typescript-eslint/no-explicit-any */
import { actionSuffixDivider, createAction, matchActionSuffix, } from './create-action';
export function createAsyncAction(type, request, success, failure) {
const action = createAction([type, 'request'].join(actionSuffixDivider), request);
if (success) {
Object.assign(action, {
success: createAction([type, 'success'].join(actionSuffixDivider), success),
});
}
if (failure) {
Object.assign(action, {
failure: createAction([type, 'failure'].join(actionSuffixDivider), failure),
});
}
return action;
}
export function isActionWithSuffix(action, suffix) {
return !!action.type.match(matchActionSuffix(suffix));
}
export const isRequestAction = (action) => isActionWithSuffix(action, 'request');
export const isSuccessAction = (action) => isActionWithSuffix(action, 'success');
export const isFailureAction = (action) => isActionWithSuffix(action, 'failure');
export const isCompleteAction = (action) => isSuccessAction(action) || isFailureAction(action);
//# sourceMappingURL=create-async-action.js.map