- Delete old Vite+Svelte frontend - Initialize new SvelteKit project with TypeScript - Configure Tailwind CSS v4 + DaisyUI - Implement JWT authentication with auto-refresh - Create login page with form validation (Zod) - Add protected route guards - Update Docker configuration for single-stage build - Add E2E tests with Playwright (6/11 passing) - Fix Svelte 5 reactivity with $state() runes Known issues: - 5 E2E tests failing (timing/async issues) - Token refresh implementation needs debugging - Validation error display timing
AssertionError and AssertionResult classes.
What is AssertionError?
Assertion Error is a module that contains two classes: AssertionError, which
is an instance of an Error, and AssertionResult which is not an instance of
Error.
These can be useful for returning from a function - if the function "succeeds"
return an AssertionResult and if the function fails return (or throw) an
AssertionError.
Both AssertionError and AssertionResult implement the Result interface:
interface Result {
name: "AssertionError" | "AssertionResult";
ok: boolean;
toJSON(...args: unknown[]): Record<string, unknown>;
}
So if a function returns AssertionResult | AssertionError it is easy to check
which one is returned by checking either .name or .ok, or check
instanceof Error.
Installation
Node.js
assertion-error is available on npm.
$ npm install --save assertion-error
Deno
assertion_error is available on
Deno.land
import {
AssertionError,
AssertionResult,
} from "https://deno.land/x/assertion_error@2.0.0/mod.ts";