// Copyright: Ankitects Pty Ltd and contributors // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html export function assertUnreachable(x: never): never { throw new Error(`unreachable: ${x}`); } export type Callback = () => void; export type AsyncCallback = () => Promise; export function singleCallback(...callbacks: Callback[]): Callback { return () => { for (const cb of callbacks) { cb(); } }; }