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;
pub use ast::MethodChain;

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.
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.