diff --git a/util/assertions.ts b/util/assertions.ts new file mode 100644 index 0000000..0078eb5 --- /dev/null +++ b/util/assertions.ts @@ -0,0 +1,15 @@ +export function VERIFY(condition: boolean, message?: string): asserts condition is true { + if (!condition) throw new Error(`VERIFY: ${message ?? 'Condition was not met.'}`); +} + +export function VERIFY_NOT_REACHED(message?: string): void { + if (message !== undefined) throw new Error(`VERIFY_NOT_REACHED: ${message}`); + + throw new Error('VERIFY_NOT_REACHED'); +} + +export function TODO(message?: string): void { + if (message !== undefined) throw new Error(`TODO: ${message}`); + + throw new Error('TODO'); +}