Skip to content

Quick Start

Installation

bash
npm install farrow-schema
# or
pnpm add farrow-schema
# or
yarn add farrow-schema

5-Minute Quick Start

1️⃣ Define Your First Schema

typescript
import { ObjectType, String, Number, TypeOf } from 'farrow-schema'

class User extends ObjectType {
  name = String
  age = Number
}

That's it! You just defined a user Schema.

2️⃣ Get TypeScript Types

typescript
type UserType = TypeOf<typeof User>
// Automatically inferred as: { name: string, age: number }

// Now you can use this type anywhere
function greetUser(user: UserType) {
  console.log(`Hello, ${user.name}!`)
}

3️⃣ Validate Runtime Data

typescript
import { Validator } from 'farrow-schema/validator'

// Simulate data received from API
const apiData = {
  name: 'Alice',
  age: 25
}

// Validate data
const result = Validator.validate(User, apiData)

if (result.kind === 'Ok') {
  console.log('✅ Validation successful:', result.value)
  // result.value type is UserType, fully type-safe
  greetUser(result.value)
} else {
  console.log('❌ Validation failed:', result.value.message)
  // Error location: result.value.path
}

4️⃣ Handle Real Scenarios

typescript
// Data from user input (potentially unsafe)
const userInput = JSON.parse(request.body)

const result = Validator.validate(User, userInput)

if (result.kind === 'Ok') {
  // Data is validated, can be safely used
  await saveUser(result.value)
  response.json({ success: true })
} else {
  // Data has issues, return error
  response.status(400).json({
    error: result.value.message,
    field: result.value.path?.join('.')
  })
}

🎉 Complete! You've mastered the basic usage of farrow-schema.

This is a third-party Farrow documentation site | Built with ❤️ and TypeScript