Skip to content

Commit

Permalink
feat(sozo): scaffold ts base files on user behalf
Browse files Browse the repository at this point in the history
  • Loading branch information
MartianGreed committed Aug 8, 2024
1 parent f1c5214 commit 412585e
Show file tree
Hide file tree
Showing 12 changed files with 551 additions and 0 deletions.
140 changes: 140 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions bin/sozo/src/commands/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ pub struct BuildArgs {
#[arg(help = "Generate Typescript bindings.")]
pub typescript_v2: bool,

#[arg(long)]
#[arg(help = "Generate Typescript scaffolding files.")]
pub scaffold: bool,

#[arg(long)]
#[arg(help = "Generate Unity bindings.")]
pub unity: bool,
Expand Down Expand Up @@ -87,6 +91,10 @@ impl BuildArgs {
builtin_plugins.push(BuiltinPlugins::Typescript);
}

if self.scaffold {
builtin_plugins.push(BuiltinPlugins::TypescriptScaffold);
}

if self.typescript_v2 {
builtin_plugins.push(BuiltinPlugins::TypeScriptV2);
}
Expand Down Expand Up @@ -162,6 +170,7 @@ impl Default for BuildArgs {
bindings_output: "bindings".to_string(),
stats: false,
packages: None,
scaffold: false,
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions crates/dojo-bindgen/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ thiserror.workspace = true

cainome.workspace = true
dojo-world = { path = "../dojo-world", features = [ "manifest" ] }
lazy_static = "1.5.0"
tera = { version = "1" }

[dev-dependencies]
assert_matches.workspace = true
Expand Down
2 changes: 2 additions & 0 deletions crates/dojo-bindgen/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ use error::BindgenResult;

mod plugins;
use plugins::typescript::TypescriptPlugin;
use plugins::typescript_scaffold::TypescriptScaffoldPlugin;
use plugins::typescript_v2::TypeScriptV2Plugin;
use plugins::unity::UnityPlugin;
use plugins::BuiltinPlugin;
Expand Down Expand Up @@ -88,6 +89,7 @@ impl PluginManager {
BuiltinPlugins::Typescript => Box::new(TypescriptPlugin::new()),
BuiltinPlugins::Unity => Box::new(UnityPlugin::new()),
BuiltinPlugins::TypeScriptV2 => Box::new(TypeScriptV2Plugin::new()),
BuiltinPlugins::TypescriptScaffold => Box::new(TypescriptScaffoldPlugin::new()),
};

let files = builder.generate_code(&data).await?;
Expand Down
3 changes: 3 additions & 0 deletions crates/dojo-bindgen/src/plugins/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ use crate::error::BindgenResult;
use crate::DojoData;

pub mod typescript;
pub mod typescript_scaffold;
pub mod typescript_v2;
pub mod unity;

Expand All @@ -16,6 +17,7 @@ pub enum BuiltinPlugins {
Typescript,
Unity,
TypeScriptV2,
TypescriptScaffold,
}

impl fmt::Display for BuiltinPlugins {
Expand All @@ -24,6 +26,7 @@ impl fmt::Display for BuiltinPlugins {
BuiltinPlugins::Typescript => write!(f, "typescript"),
BuiltinPlugins::Unity => write!(f, "unity"),
BuiltinPlugins::TypeScriptV2 => write!(f, "typescript_v2"),
BuiltinPlugins::TypescriptScaffold => write!(f, "typescript_scaffold"),
}
}
}
Expand Down
Loading

0 comments on commit 412585e

Please sign in to comment.