signal-desktop/ts/axo/_internal/assert.tsx

18 lines
578 B
TypeScript
Raw Normal View History

2025-08-04 13:35:20 -07:00
// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export class AssertionError extends TypeError {
override name = 'AssertionError';
}
export function assert(condition: boolean, message?: string): asserts condition;
export function assert<T>(input: T, message?: string): NonNullable<T>;
export function assert<T>(input: T, message?: string): NonNullable<T> {
if (input === false || input == null) {
// eslint-disable-next-line no-debugger
debugger;
throw new AssertionError(message ?? `input is ${input}`);
}
return input;
}