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 bounesrc/context.ts- Shared context (database pools, HTTP clients)src/index.ts- Entry pointsrc/commands/*.ts- Command definitionssrc/handlers/*.ts- Handler stubs for implementationpackage.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§
- Code
File - A structured representation of a TypeScript file.
- Generate
Result - Result of code generation
- Generator
- TypeScript code generator that produces boune-based CLI code for Bun.
- Preview
File - 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.
- Type
Script Code Type Mapper - TypeScript Code IR type mapper implementation.
- Type
Script Renderer - TypeScript language renderer.
- Type
Script Structure Renderer - TypeScript implementation of StructureRenderer.
- Type
Script Type Mapper - TypeScript type mapper implementation.
Constants§
- BOUNE_
VERSION - Target boune version for generated code.
- TS_
NAMING - TypeScript naming conventions.
Traits§
- Language
Codegen - Trait for language-specific code generators.