UNPKG

@tldraw/utils

Version:

tldraw infinite canvas SDK (private utilities).

51 lines (50 loc) 1.15 kB
import { omitFromStackTrace } from "./function.mjs"; const Result = { ok(value) { return { ok: true, value }; }, err(error) { return { ok: false, error }; } }; function exhaustiveSwitchError(value, property) { const debugValue = property && value && typeof value === "object" && property in value ? value[property] : value; throw new Error(`Unknown switch case ${debugValue}`); } const assert = omitFromStackTrace( (value, message) => { if (!value) { throw new Error(message || "Assertion Error"); } } ); const assertExists = omitFromStackTrace((value, message) => { if (value == null) { throw new Error(message ?? "value must be defined"); } return value; }); function promiseWithResolve() { let resolve; let reject; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); return Object.assign(promise, { resolve, reject }); } function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } export { Result, assert, assertExists, exhaustiveSwitchError, promiseWithResolve, sleep }; //# sourceMappingURL=control.mjs.map