Schema
interfaz
Public Standard Schema v1 contract for API, RPC, and Socket.
Los schemas de Valibot lo implementan; los públicos viven en shared/.
ts
import type { Schema } from "@meekojs/meeko/server";Código fuente src/server/schema.ts:16
Declaración #
ts
interface Schema<I = unknown, O = I> {
readonly '~standard': {
readonly version: 1
readonly validate: (value: unknown) => { value: O; issues?: undefined } | { issues: readonly unknown[] } | Promise<{ value: O; issues?: undefined } | { issues: readonly unknown[] }>
readonly types?: { readonly input: I; readonly output: O } | undefined
}
}Parámetros de tipo #
-
I= unknown Tipo de entrada.
-
O= I Tipo de salida, tras validar y transformar.
Ejemplo #
ts
// shared/schemas/user.ts
import * as v from "valibot";
import type { Schema } from "@meekojs/meeko/server";
export const userSchema: Schema<{ id: string; name: string }> = v.object({ id: v.string(), name: v.string() });Propiedades #
~standard
#
readonly '~standard': {
readonly version: 1
readonly validate: (value: unknown) => { value: O; issues?: undefined } | { issues: readonly unknown[] } | Promise<{ value: O; issues?: undefined } | { issues: readonly unknown[] }>
readonly types?: { readonly input: I; readonly output: O } | undefined
}Interfaz Standard Schema v1: validate devuelve el valor de salida o la lista de issues.