From b0447d9e3273272d06fc474633bfba3493cd8e23 Mon Sep 17 00:00:00 2001 From: Mehdi Salemi Date: Mon, 14 Apr 2025 09:56:15 -0400 Subject: [PATCH] support shopify function wasm api + javy v2 --- build.rs | 1 + providers/shopify_function_v1.wasm | Bin 0 -> 117461 bytes src/engine.rs | 158 +++++++++++++++++---- src/main.rs | 19 ++- tests/fixtures/build/echo.trampolined.wasm | Bin 0 -> 67697 bytes tests/integration_tests.rs | 96 +++---------- 6 files changed, 171 insertions(+), 103 deletions(-) create mode 100644 providers/shopify_function_v1.wasm create mode 100644 tests/fixtures/build/echo.trampolined.wasm diff --git a/build.rs b/build.rs index 94121b0d..a4890c76 100644 --- a/build.rs +++ b/build.rs @@ -4,4 +4,5 @@ fn main() { println!("cargo:rerun-if-changed=providers/javy_quickjs_provider_v3.wasm"); println!("cargo:rerun-if-changed=providers/shopify_functions_javy_v1.wasm"); println!("cargo:rerun-if-changed=providers/shopify_functions_javy_v2.wasm"); + println!("cargo:rerun-if-changed=providers/shopify_function_v1.wasm"); } diff --git a/providers/shopify_function_v1.wasm b/providers/shopify_function_v1.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7a49d784c19d90b256c9e95ad0219d9078bbc2f2 GIT binary patch literal 117461 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