@typed/io
Version:
Runtime IO type system
26 lines • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.remoteData = exports.RemoteData = void 0;
const logic_1 = require("@typed/logic");
const remote_data_1 = require("@typed/remote-data");
const Record_1 = require("./Record");
const refinement_1 = require("./refinement");
const isNoData = logic_1.equals(remote_data_1.NoData);
const _RemoteData = refinement_1.refinement(Record_1.Record, (r) => isNoData(r) ||
remote_data_1.isLoading(r) ||
remote_data_1.isDoneLoading(r) ||
remote_data_1.isRefreshing(r));
exports.RemoteData = _RemoteData;
function remoteData(left, right) {
return refinement_1.refinement(_RemoteData, (u) => {
if (remote_data_1.isFailure(u) || remote_data_1.isRefreshingFailure(u)) {
return left.is(u.value);
}
if (remote_data_1.isSuccess(u) || remote_data_1.isRefreshingSuccess(u)) {
return right.is(u.value);
}
return true;
});
}
exports.remoteData = remoteData;
//# sourceMappingURL=RemoteData.js.map