@4players/odin-common
Version:
A collection of commonly used type definitions and utility functions across ODIN web projects
32 lines (31 loc) • 744 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assert = assert;
exports.fail = fail;
exports.success = success;
exports.failure = failure;
exports.unwrap = unwrap;
exports.unwrapOr = unwrapOr;
function assert(condition, message) {
if (!condition) {
fail(message);
}
}
function fail(message) {
throw new Error(message);
}
function success(value) {
return { type: 'Success', value };
}
function failure(reason) {
return { type: 'Failure', reason };
}
function unwrap(result) {
if (result.type === 'Failure') {
fail(result.reason);
}
return result.value;
}
function unwrapOr(result, fallback) {
return result.type === 'Success' ? result.value : fallback;
}