@42-lyon/42api-zod-schemas
v1.5.1
Published
Zod schemas and TypeScript types for validating and typing 42API response bodies
Readme
42API-zod-schemas
This package centralises Zod schemas for common 42 API resources so downstream projects can parse, validate and type responses safely.
Features
- Zod schemas for several 42 API resources (users, projects, events, campuses, achievements, and more)
- TypeScript types inferred from the Zod schemas
- ESM-friendly exports (import only what you need)
Installation
npm install @42-lyon/42api-zod-schemas
# or
pnpm add @42-lyon/42api-zod-schemas
# or
yarn add @42-lyon/42api-zod-schemasThe package is ESM-only and ships bundled .d.ts definitions.
Quick start
import { intraUserSchema, type IntraUser } from '@42-lyon/42api-zod-schemas';
const response = await fetch('https://api.intra.42.fr/v2/users/cameo');
const payload = await response.json();
// Throws on invalid payload
const user: IntraUser = intraUserSchema.parse(payload);
// Or keep control over the error path
const result = intraUserSchema.safeParse(payload);
if (!result.success) {
console.error(result.error.format());
}Tree-shakeable imports
Schemas are exported individually so you can import only what you need:
import { projectSchema } from '@42-lyon/42api-zod-schemas/project';Available Schemas
- achievements
- achievements_users
- blocs
- campus
- close
- coalitions
- coalitions_users
- cursus_users
- events
- experiences
- flags
- pool
- projects
- projects_user
- quests
- scales
- scale_teams
- scores
- teams
- teams_uploads
- teams_users
- transactions
- users
Each schema is exported alongside its inferred type (e.g. intraUserSchema and IntraUser).
Links
- npm: https://www.npmjs.com/package/@42-lyon/42api-zod-schemas
- Repository: https://github.com/42-Lyon/42API-zod-schemas
- Issues: https://github.com/42-Lyon/42API-zod-schemas/issues
