Crate baobao_codegen_typescript

Crate baobao_codegen_typescript 

Source
Expand description

TypeScript code generator for Bao CLI generator.

This crate generates TypeScript CLI applications using boune a CLI library targeting Bun runtime.

§Usage

This crate is used internally by the baobao CLI tool. You typically don’t need to use it directly.

use baobao_codegen_typescript::Generator;
use baobao_codegen::LanguageCodegen;
use baobao_manifest::Manifest;
use std::path::Path;

let manifest = Manifest::from_file("bao.toml")?;
let generator = Generator::new(&manifest);

// Preview files without writing
let files = generator.preview();

// Generate files to disk
let result = generator.generate(Path::new("output"))?;

§Generated Output

The generator produces a TypeScript CLI project structure:

  • src/cli.ts - Main CLI setup with boune
  • src/context.ts - Shared context (database pools, HTTP clients)
  • src/index.ts - Entry point
  • src/commands/*.ts - Command definitions
  • src/handlers/*.ts - Handler stubs for implementation
  • package.json, tsconfig.json, bao.toml, .gitignore

Re-exports§

pub use adapters::BouneAdapter;
pub use adapters::BunSqliteAdapter;
pub use ast::ArrowFn;
pub use ast::Import;
pub use ast::JsObject;

Modules§

adapters
Adapter implementations for TypeScript code generation.
ast
TypeScript AST builders for generating types, functions, imports, and exports.
files
TypeScript file generators.

Structs§

CodeFile
A structured representation of a TypeScript file.
GenerateResult
Result of code generation
Generator
TypeScript code generator that produces boune-based CLI code for Bun.
PreviewFile
A generated file for preview
RawCode
A raw code fragment that implements Renderable.
Shebang
A shebang line that appears at the very top of the file.
TypeScriptCodeTypeMapper
TypeScript Code IR type mapper implementation.
TypeScriptRenderer
TypeScript language renderer.
TypeScriptStructureRenderer
TypeScript implementation of StructureRenderer.
TypeScriptTypeMapper
TypeScript type mapper implementation.

Constants§

BOUNE_VERSION
Target boune version for generated code.
TS_NAMING
TypeScript naming conventions.

Traits§

LanguageCodegen
Trait for language-specific code generators.