17 lines
578 B
TypeScript
17 lines
578 B
TypeScript
// 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;
|
|
}
|