API reference › @evolu/common › local‑first/Evolu › EvoluErrorDep
Defined in: packages/common/src/local-first/Evolu.ts:757
Properties
evoluError
readonly evoluError: ReadonlyStore<
| EvoluError
| null>;
Defined in: packages/common/src/local-first/Evolu.ts:812
ReadonlyStore of EvoluError shared by all Evolu instances created from the same createEvoluDeps result.
Subscribe once to show user-facing error messages across all instances.
Example
import {
assertEqual,
createStore,
Millis,
type EvoluError,
} from "@evolu/common";
import type { EvoluErrorDep } from "@evolu/common/local-first";
// Stand-in for run.deps.evoluError from createEvoluDeps.
using evoluError = createStore<EvoluError | null>(null);
const deps = { evoluError } satisfies EvoluErrorDep;
let displayedMessage = "";
const showMessage = (message: string) => {
displayedMessage = message;
};
deps.evoluError.subscribe(() => {
const error = deps.evoluError.get();
if (!error) return;
// oxlint-disable-next-line typescript/switch-exhaustiveness-check -- The default intentionally handles every other EvoluError.
switch (error.type) {
case "TimestampDriftError":
// Show guidance specific to the detected error.
showMessage("Your system clock appears incorrect. Please fix it.");
break;
default:
// Show a generic user message for other operational errors.
showMessage("Something went wrong. Please try again.");
}
});
deps.evoluError.set({
type: "TimestampDriftError",
next: Millis.orThrow(360000),
now: Millis.orThrow(0),
});
assertEqual(
displayedMessage,
"Your system clock appears incorrect. Please fix it.",
);