Skip to content

Commit 7a101a7

Browse files
authored
Simplify codegen for the solidity_npm_package crate (#1411)
This is a first step towards reducing the number of boilerplate in the project. More concretely, this PR moves the code from `crates/codegen/runtime/npm/package` to `crates/solidity/outputs/npm/package`, and performs an in-place codegen of the jinja templates (in fact, just one for the nodes).
1 parent 1bb3583 commit 7a101a7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+486
-2682
lines changed

.cspell.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/v5.19.2/cspell.schema.json",
33
"language": "en-US",
44
"files": ["**/*.md"],
5-
"ignorePaths": ["submodules/**", "**/generated/**", "CHANGELOG.md"],
5+
"ignorePaths": ["submodules/**", "**/generated/**", "**/*.generated.*", "CHANGELOG.md"],
66
"ignoreWords": [
77
// Alphabetically sorted list of "allowed" words to ignore:
88
"abicoder",

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
# Generated Sources
55
**/generated/** linguist-generated=true
6+
**/*.generated.* linguist-generated=true
67

78
# Lock Files
89
**/Cargo.lock linguist-generated=true

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"files.eol": "\n",
1313
"files.insertFinalNewline": true,
1414
"files.readonlyInclude": {
15-
"**/generated/**": true
15+
"**/generated/**": true,
16+
"**/*.generated.*": true
1617
},
1718
"rust-analyzer.check.allTargets": true,
1819
"rust-analyzer.check.command": "clippy",

Cargo.lock

Lines changed: 0 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ members = [
1616
"crates/codegen/runtime/cargo/crate",
1717
"crates/codegen/runtime/cargo/wasm",
1818
"crates/codegen/runtime/generator",
19-
"crates/codegen/runtime/npm/package",
2019
"crates/codegen/spec",
2120
"crates/codegen/testing",
2221

@@ -54,7 +53,6 @@ codegen_runner = { path = "crates/codegen/runner", version = "1.2.1" }
5453
codegen_runtime_cargo_crate = { path = "crates/codegen/runtime/cargo/crate", version = "1.2.1" }
5554
codegen_runtime_cargo_wasm = { path = "crates/codegen/runtime/cargo/wasm", version = "1.2.1" }
5655
codegen_runtime_generator = { path = "crates/codegen/runtime/generator", version = "1.2.1" }
57-
codegen_runtime_npm_package = { path = "crates/codegen/runtime/npm/package", version = "1.2.1" }
5856
codegen_spec = { path = "crates/codegen/spec", version = "1.2.1" }
5957
codegen_testing = { path = "crates/codegen/testing", version = "1.2.1" }
6058

crates/codegen/runner/src/main.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ fn main() {
2323
|| generate_solidity_tests(),
2424
|| generate_stubs("codegen_runtime_cargo_crate"),
2525
|| generate_stubs("codegen_runtime_cargo_wasm"),
26-
|| generate_stubs("codegen_runtime_npm_package"),
2726
|| {
2827
let mut fs = CodegenFileSystem::default();
2928
let language = SolidityDefinition::create();
@@ -55,10 +54,9 @@ fn main() {
5554
)
5655
},
5756
|| {
58-
generate_product(
57+
generate_in_place(
5958
&mut CodegenFileSystem::default(),
6059
&SolidityDefinition::create(),
61-
"codegen_runtime_npm_package",
6260
"solidity_npm_package",
6361
)
6462
},
@@ -119,6 +117,16 @@ fn generate_product(
119117
RuntimeGenerator::generate_product(language, fs, &input_dir, &output_dir)
120118
}
121119

120+
fn generate_in_place(
121+
fs: &mut CodegenFileSystem,
122+
language: &Language,
123+
the_crate: &str,
124+
) -> Result<()> {
125+
let the_crate = CargoWorkspace::locate_source_crate(the_crate)?;
126+
127+
RuntimeGenerator::generate_templates_in_place(language, fs, &the_crate)
128+
}
129+
122130
fn generate_builtins(
123131
fs: &mut CodegenFileSystem,
124132
language: &Language,

crates/codegen/runtime/generator/src/lib.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@ impl RuntimeGenerator {
3737
CodegenRuntime::render_product(fs, input_dir, output_dir, model)
3838
}
3939

40+
pub fn generate_templates_in_place(
41+
language: &Language,
42+
fs: &mut CodegenFileSystem,
43+
dir: &Path,
44+
) -> Result<()> {
45+
let model = ModelWrapper {
46+
rendering_in_stubs: false,
47+
model: RuntimeModel::from_language(language)?,
48+
};
49+
50+
CodegenRuntime::render_templates_in_place(fs, dir, model)
51+
}
52+
4053
pub fn generate_stubs(fs: &mut CodegenFileSystem, source_dir: &Path) -> Result<()> {
4154
let model = ModelWrapper {
4255
rendering_in_stubs: true,

crates/codegen/runtime/npm/package/.gitignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

crates/codegen/runtime/npm/package/CHANGELOG.md

Lines changed: 0 additions & 588 deletions
This file was deleted.

crates/codegen/runtime/npm/package/Cargo.toml

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)