Sha256: 97088f9bc5c31017deee68d7f72c2b88cff0efbeecda23ed4bf22df61eea8246
Contents?: true
Size: 1.34 KB
Versions: 4
Compression:
Stored size: 1.34 KB
Contents
# frozen_string_literal: true require "rails/railtie" class TypesFromSerializers::Railtie < Rails::Railtie railtie_name :types_from_serializers # Automatically generates code whenever a serializer is loaded. if defined?(Rails.env) && Rails.env.development? require_relative "generator" initializer "types_from_serializers.reloader" do |app| if Gem.loaded_specs["listen"] require "listen" app.config.after_initialize do app.reloaders << TypesFromSerializers.track_changes end app.config.to_prepare do TypesFromSerializers.generate_changed end else app.config.to_prepare do TypesFromSerializers.generate end Rails.logger.warn "Add 'listen' to your Gemfile to automatically generate code on serializer changes." end end end # Suitable when triggering code generation manually. rake_tasks do |app| namespace :types_from_serializers do desc "Generates TypeScript interfaces for each serializer in the app." task generate: :environment do require_relative "generator" serializers = TypesFromSerializers.generate(force: true) puts "Generated TypeScript interfaces for #{serializers.size} serializers:" puts serializers.map { |s| "\t#{s.name}" }.join("\n") end end end end
Version data entries
4 entries across 4 versions & 1 rubygems