Generated from services/crossfire/node/packages/contracts/src/validation.ts at
52bf0279Definitions#
These TypeScript definitions document server validation. check.object rejects unknown fields. Custom functions and refinements specify additional checks.
Imported definitions#
services/crossfire/node/packages/kernel/src/result.tsservices/crossfire/node/packages/contracts/src/schema/validation.ts
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: