@surface/core
Version:
Provides core functionality of many @surfaces modules.
37 lines (36 loc) • 901 B
JavaScript
export function assert(condition, message = "Assertion failed.") {
if (!condition) {
throw new Error(message);
}
}
export function assertGet(value, message) {
if (!hasValue(value)) {
throw new Error(message);
}
return value;
}
export function compare(left, right) {
if (left > right) {
return 1;
}
else if (left < right) {
return -1;
}
return 0;
}
export function hasFlag(value, flag) {
return (value & flag) == flag;
}
export function hasValue(value) {
return value !== null && value !== undefined;
}
export function isIterable(source) {
return typeof source[Symbol.iterator] == "function";
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function tuple(...args) {
return args;
}
export function typeGuard(_target, condition) {
return condition;
}