@yoroi/common
Version:
The Common package of Yoroi SDK
52 lines • 1.11 kB
JavaScript
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 = _ref => {
let {
data,
timeout = 3000
} = _ref;
return new Promise(resolve => {
setTimeout(() => resolve(data), timeout);
});
};
const empty = emptyRepresentation => Promise.resolve(emptyRepresentation);
const asyncBehaviorMaker = _ref2 => {
let {
otherErrors,
data,
timeout,
emptyRepresentation
} = _ref2;
return freeze({
delayed: function () {
return delayed({
data,
timeout
});
},
empty: function () {
return empty(emptyRepresentation);
},
error: {
...otherErrors,
unknown: function () {
return error();
}
},
loading,
success: function () {
return success(data);
}
});
};
export const asyncBehavior = freeze({
delayed,
empty,
error,
loading,
success,
maker: asyncBehaviorMaker
});
//# sourceMappingURL=async-behavior.js.map