UNPKG

@tldraw/utils

Version:

tldraw infinite canvas SDK (private utilities).

63 lines (62 loc) 1.47 kB
import { omitFromStackTrace } from "./function.mjs"; const Result = { /** * Create a successful result containing a value. * * @param value - The success value to wrap * @returns An OkResult containing the value */ ok(value) { return { ok: true, value }; }, /** * Create a failed result containing an error. * * @param error - The error value to wrap * @returns An ErrorResult containing the error */ 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