Validate request bags
Validate different parts of the request (query, params, headers). Use Pema schemas. See Input validation for the complete integration overview and Pema schemas for parsing and coercion.
Validate all input sources for security.
// routes/search.ts
import route from "primate/route";
import p from "pema";
const Query = p.loose({
q: p.string.min(1),
limit: p.uint.max(100).default(10),
});
export default route({
get(request) {
const { q, limit } = Query.parse(request.query);
return { q, limit };
},
});// routes/user/[id].ts
import route from "primate/route";
import p from "pema";
export default route({
get(request) {
const id = p.loose.uint.parse(request.path.get("id"));
return { id };
},
});import route from "primate/route";
import p from "pema";
const IsBearer = p({
Authorization: p.string.startsWith("Bearer "),
});
export default route({
get(request) {
const { Authorization } = IsBearer.parse(request.headers);
return { auth: Authorization };
},
});