Crate ferro_type_gen

Crate ferro_type_gen 

Source
Expand description

TypeScript file generation for ferro-type

This crate provides utilities for generating TypeScript definition files from Rust types that implement the TS trait.

§Example

use ferro_type::TS;
use ferro_type_gen::{Config, Generator, ExportStyle};

#[derive(TS)]
struct User {
    id: String,
    name: String,
}

let mut generator = Generator::new(
    Config::new()
        .output("types.ts")
        .export_style(ExportStyle::Named)
);

generator.register::<User>();
generator.write().expect("Failed to write TypeScript");

§build.rs Integration

// build.rs
use ferro_type_gen::{Config, Generator};

fn main() {
    let mut generator = Generator::new(
        Config::new().output("../frontend/src/types/api.ts")
    );

    generator.register::<api::User>()
       .register::<api::Post>();

    generator.write_if_changed()
        .expect("TypeScript generation failed");
}

Structs§

Config
Configuration for TypeScript generation
Generator
TypeScript file generator

Enums§

ExportStyle
How to export types in the generated file

Constants§

PRETTIFY_TYPE
The Prettify utility type flattens intersection types for better readability.
PRETTIFY_TYPE_EXPORTED
Exported version of the Prettify utility type (with export keyword)

Functions§

export_to_file
Export types from a registry to a file
generate
Generate TypeScript for a single type