Typelizer

Gem Version

Typelizer generates TypeScript types, route helpers, and OpenAPI schemas from your Ruby on Rails application. It keeps your backend and frontend in sync without hand-maintaining types.

Features

  • Automatic TypeScript interface generation from serializers
  • Type-safe route helpers from Rails routes
  • Supports Alba, ActiveModel::Serializer, Oj::Serializer, Panko::Serializer
  • OpenAPI 3.0/3.1 schema generation
  • Multiple output writers with layered configuration
  • File watching with automatic regeneration in development

Quick Start

Add to your Gemfile:

gem "typelizer"

Include the DSL in your serializers:

class ApplicationResource
  include Alba::Resource
  include Typelizer::DSL
end

class PostResource < ApplicationResource
  attributes :id, :title, :body
end

Generate TypeScript types:

rails typelizer:generate

Documentation

Full documentation: https://typelizer.dev

Development

You need PostgreSQL running locally. Then:

bundle install
cd spec/app && RAILS_ENV=test bundle exec rails db:create db:migrate && cd ../..
bundle exec rspec

The test suite uses a dummy Rails app in spec/app/ with models, migrations, and serializers for all four supported frameworks (Alba, AMS, OjSerializers, Panko). Linting is done with StandardRB:

bundle exec standardrb

bundle exec rake runs both the tests and the linter.

Credits

Typelizer is inspired by types_from_serializers, js-routes, and Wayfinder.

Built by Evil Martians

License

The gem is available as open source under the terms of the MIT License.