Definitions#

These TypeScript definitions document server validation. check.object rejects unknown fields. Custom functions and refinements specify additional checks.

Imported definitions#

object#

export function object(value: unknown): Result<Record<string, unknown>> {
    return value !== null && typeof value === 'object' && !Array.isArray(value)
        ? success(value as Record<string, unknown>) : failure('invalid', 'Expected an object');
}

Related definitions:

fields#

export function fields(value: unknown, required: readonly string[], optional: readonly string[] = []): Result<Record<string, unknown>> {
    const parsed = object(value);
    if (!parsed.ok)
        return parsed;
    if (required.some(key => !Object.hasOwn(parsed.value, key)) || Object.keys(parsed.value).some(key => !required.includes(key) && !optional.includes(key))) {
        return failure('invalid', 'Missing or unknown fields');
    }
    return parsed;
}

Related definitions:

text#

export function text(value: unknown, maximum = 200): value is string { return check.text(maximum)(value).ok; }

userId#

export function userId(value: unknown): value is string { return check.matrixUserId(value).ok; }

Related definitions:

roomId#

export function roomId(value: unknown): value is string { return check.roomId(value).ok; }

selectRoom#

export function selectRoom(selector: string): string {
    if (!roomId(selector))
        throw new Error('Use an exact native room ID from matrix get-joined-rooms');
    return selector;
}

Related definitions: