@tldraw/utils
Version:
tldraw infinite canvas SDK (private utilities).
51 lines (50 loc) • 1.15 kB
JavaScript
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