fr3on / laravel-bond
Automatically generate TypeScript types from Laravel API Resources, Form Requests, and Enums for a type-safe frontend.
0.0.1
2026-04-12 13:42 UTC
Requires
- php: ^8.2
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^8.0|^9.0|^10.0
- pestphp/pest: ^2.34|^3.0
README
Generates TypeScript types from Laravel API Resources, Form Requests, and Enums. PHP is the single source of truth—frontend types are never written by hand.
Installation
composer require fr3on/laravel-bond
Usage
Generate types for your configured paths:
php artisan bond:generate
Watch for changes during development:
php artisan bond:watch
Expected Result
The package generates a single TypeScript file (default: resources/js/types/api.ts) containing your definitions:
// auto-generated by laravel-bond — do not edit // generated: 2026-04-12T10:00:00Z export interface UserResource { id: number name: string email: string avatar: string | null roles: RoleResource[] created_at: string // ISO 8601 } export interface CreateUserRequest { name: string email: string password: string role_id: number } export type UserStatus = 'active' | 'suspended' | 'pending'
Configuration
Publish the config file:
php artisan vendor:publish --tag=bond-config
Customize paths and output format in config/bond.php.