Transformaciones
Elige una pestaña para transformar la respuesta con la misma biblioteca en el código y la demo. Consulta la guía de validación para instalarla.
import { Http, envelope } from "fetchzen";import { z } from "zod";
const schema = z.object({ name: z.string().trim() }).transform(({ name }) => ({ greeting: `Hello, ${name}`, characters: name.length,}));const api = Http.create(`${location.origin}/api/examples/`, { cache: false, secure: false, preset: envelope,});const result = await api.get("echo", { params: { name: "Ada" }, schema });console.log(result.payload.greeting, result.payload.characters);Listo. No se ha enviado ninguna solicitud.
Resultado
Elige Ejecutar para ver la respuesta.
Registro de eventos
Todavía no hay eventos.
import { Http, envelope } from "fetchzen";import * as v from "valibot";
const schema = v.pipe( v.object({ name: v.pipe(v.string(), v.trim()) }), v.transform(({ name }) => ({ greeting: `Hello, ${name}`, characters: name.length, })),);const api = Http.create(`${location.origin}/api/examples/`, { cache: false, secure: false, preset: envelope,});const result = await api.get("echo", { params: { name: "Ada" }, schema });console.log(result.payload.greeting, result.payload.characters);Listo. No se ha enviado ninguna solicitud.
Resultado
Elige Ejecutar para ver la respuesta.
Registro de eventos
Todavía no hay eventos.
Qué observar
Sección titulada «Qué observar»Prueba espacios alrededor del nombre: el saludo y el conteo usan el nombre sin esos espacios.
El contenido inferido es { greeting: string; characters: number }, no { name: string }.
El endpoint echo de este sitio tiene límites y proporciona la entrada; el esquema la transforma localmente.
Continúa con validación o JSON.