@yoroi/common
Version:
The Common package of Yoroi SDK
44 lines (43 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.asyncBehavior = void 0;
var _immer = require("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
}) => (0, _immer.freeze)({
delayed: (..._args) => delayed({
data,
timeout
}),
empty: (..._args) => empty(emptyRepresentation),
error: {
...otherErrors,
unknown: (..._args) => error()
},
loading,
success: (..._args) => success(data)
});
const asyncBehavior = exports.asyncBehavior = (0, _immer.freeze)({
delayed,
empty,
error,
loading,
success,
maker: asyncBehaviorMaker
});
//# sourceMappingURL=async-behavior.js.map