From 46b730e23518ab1b588f71643bbcf8fcc5a73fef Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sat, 23 Jul 2022 13:03:43 +0800 Subject: [PATCH] feat: update container --- __wasm/wit-bindgen-sample/container/src/fn_fetch.rs | 11 ++++++----- __wasm/wit-bindgen-sample/container/src/main.rs | 10 +++++++--- __wasm/wit-bindgen-sample/engine/src/lib.rs | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/__wasm/wit-bindgen-sample/container/src/fn_fetch.rs b/__wasm/wit-bindgen-sample/container/src/fn_fetch.rs index 891b12c..0e6b745 100644 --- a/__wasm/wit-bindgen-sample/container/src/fn_fetch.rs +++ b/__wasm/wit-bindgen-sample/container/src/fn_fetch.rs @@ -45,8 +45,8 @@ pub fn do_fetch(params: &str) -> FnResult { m => return FnResult::fail(format!("Unsupported method: {}", m)), }; let mut request_builder = client.request(request_method.clone(), &fetch_params.url); + let mut has_user_agent = false; if let Some(options) = &fetch_params.options { - let mut has_user_agent = false; if let Some(headers) = &options.headers { for (k, v) in headers { let k = k.to_lowercase(); @@ -56,10 +56,11 @@ pub fn do_fetch(params: &str) -> FnResult { request_builder = request_builder.header(k, v.to_string()); } } - if !has_user_agent { - request_builder = request_builder.header("User-Agent", "JavaScriptSandboxContainer/0.1"); - } - + } + if !has_user_agent { + request_builder = request_builder.header("User-Agent", "JavaScriptSandboxContainer/0.1"); + } + if let Some(options) = &fetch_params.options { if let Some(body) = &options.body { if Method::POST == request_method { let body = reqwest::blocking::Body::from(body.to_string()); diff --git a/__wasm/wit-bindgen-sample/container/src/main.rs b/__wasm/wit-bindgen-sample/container/src/main.rs index 4def820..34536d3 100644 --- a/__wasm/wit-bindgen-sample/container/src/main.rs +++ b/__wasm/wit-bindgen-sample/container/src/main.rs @@ -38,10 +38,14 @@ fn main() -> Result<()> { let a = exports.eval_javascript(&mut store, r##" function hi(name) { return "hi: " + name; } let a = []; - a.push(fetch('https://hatter.ink/util/print_request.action')); - a.push(fetch('https://hatter.ink/ip.action')); + a.push(fetch('https://hatter.ink/util/print_request.action', { + headers: { + 'Test-Header': 'this is a test header' + } + })); + // a.push(fetch('https://hatter.ink/ip.action')); a.push(fetch('https://hatter.ink/ip/ip.jsonp')); - a.push(fetch('https://hatter.ink/ip2.action')); + // a.push(fetch('https://hatter.ink/ip2.action')); a.push({ userId: 'id001', name: 'Test', diff --git a/__wasm/wit-bindgen-sample/engine/src/lib.rs b/__wasm/wit-bindgen-sample/engine/src/lib.rs index 91768a6..8116b52 100644 --- a/__wasm/wit-bindgen-sample/engine/src/lib.rs +++ b/__wasm/wit-bindgen-sample/engine/src/lib.rs @@ -1,6 +1,7 @@ use boa_engine::{Context, JsResult, JsString, JsValue}; use serde::{Deserialize, Serialize}; use serde_json::{Map, Value}; + wit_bindgen_rust::export!("../exports.wit"); wit_bindgen_rust::import!("../container.wit"); @@ -31,7 +32,7 @@ fn do_fetch(_: &JsValue, args: &[JsValue], ctx: &mut Context) -> JsResult 1 { - fetch_params_map.insert("params".to_string(), args[1].to_json(ctx).expect("error")); + fetch_params_map.insert("options".to_string(), args[1].to_json(ctx).expect("error")); } let fetch_params = format!("{}", Value::Object(fetch_params_map));