/**
 * Utility function that uses the type system to check if a switch statement is exhaustive.
 * If the switch statement is not exhaustive, there will be a type error caught in typescript
 *
 * See https://stackoverflow.com/questions/39419170/how-do-i-check-that-a-switch-block-is-exhaustive-in-typescript for more details.
 */
export function assertUnreachable(_) {
    throw new Error("Unreachable");
}
/**
 * A type-guard function for checking if a value is an object
 */
export function isObject(value) {
    return typeof value === "object" && value != null && !Array.isArray(value);
}
export function isString(value) {
    return typeof value === "string";
}
export function isNumber(value) {
    return typeof value === "number";
}
export function isNonEmptyArray(value) {
    return value != null && Array.isArray(value) && value.length > 0;
}
//# sourceMappingURL=typeUtils.js.map