UNPKG

@yoroi/common

Version:
40 lines (39 loc) 930 B
"use strict"; import { freeze } from 'immer'; const success = result => Promise.resolve(result); const loading = () => new Promise(() => {}); const error = rejectWith => Promise.reject(rejectWith ?? new Error('Unknown error')); const delayed = ({ data, timeout = 3000 }) => new Promise(resolve => { setTimeout(() => resolve(data), timeout); }); const empty = emptyRepresentation => Promise.resolve(emptyRepresentation); const asyncBehaviorMaker = ({ otherErrors, data, timeout, emptyRepresentation }) => freeze({ delayed: (..._args) => delayed({ data, timeout }), empty: (..._args) => empty(emptyRepresentation), error: { ...otherErrors, unknown: (..._args) => error() }, loading, success: (..._args) => success(data) }); export const asyncBehavior = freeze({ delayed, empty, error, loading, success, maker: asyncBehaviorMaker }); //# sourceMappingURL=async-behavior.js.map