@yoroi/common
Version:
The Common package of Yoroi SDK
59 lines (58 loc) • 1.28 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 = _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 (0, _immer.freeze)({
delayed: function () {
return delayed({
data,
timeout
});
},
empty: function () {
return empty(emptyRepresentation);
},
error: {
...otherErrors,
unknown: function () {
return error();
}
},
loading,
success: function () {
return success(data);
}
});
};
const asyncBehavior = (0, _immer.freeze)({
delayed,
empty,
error,
loading,
success,
maker: asyncBehaviorMaker
});
exports.asyncBehavior = asyncBehavior;
//# sourceMappingURL=async-behavior.js.map