@foxy.io/sdk
Version:
Universal SDK for a full server-side and a limited in-browser access to Foxy hAPI.
28 lines (27 loc) • 1.29 kB
JavaScript
import { assign } from 'xstate';
/** XState action that clears last request's failure info. */
export const clearFailure = assign({ failure: null });
/** XState action that clears all validation errors. */
export const clearErrors = assign({ errors: [] });
/** XState action that undoes all local changes to the resource. */
export const clearEdits = assign({ edits: null });
/** XState action that removes resource snapshot. */
export const clearData = assign({ data: null });
/** Placeholder for XState action that validates data and changes to it, setting errors array. */
export const validate = clearErrors;
/** XState action that stores non-v8n-related request rejection info in context. */
export const setFailure = assign({
failure: (_, evt) => evt.data,
});
/** XState action that stores v8n-related request rejection info in context. */
export const setErrors = assign({
errors: (_, evt) => evt.data,
});
/** XState action that stores resource data passed with SET_DATA event. */
export const setData = assign({
data: (_, evt) => evt.data,
});
/** XState action that updates context with values from partial resource passed with EDIT event. */
export const applyEdit = assign({
edits: (ctx, evt) => (Object.assign(Object.assign({}, ctx.edits), evt.data)),
});