diff --git a/lib/index.ts b/lib/index.ts index 51ace59..6a27198 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -189,13 +189,13 @@ export class Client { if (args.cookieJar) { const cookie = args.cookieJar.getCookieStringSync(url) - options.headers = { ...args.headers, Cookie: cookie } + options.headers = { ...options.headers, Cookie: cookie } } if (args.body?.constructor.name === 'FormData') { - options.headers = ( args.body).getHeaders(args.headers) + options.headers = (args.body as FormData).getHeaders(options.headers) - options.body = ( args.body).getBuffer() + options.body = (args.body as FormData).getBuffer() } const res: Response = await requestPromise.call(this.#client, url, options) diff --git a/src/client.rs b/src/client.rs index 49f85e5..8b7a7f6 100644 --- a/src/client.rs +++ b/src/client.rs @@ -273,8 +273,13 @@ impl Client { DataType::Binary(v) if v.is_some() => { let val = v.unwrap(); - let mut buf= JsBuffer::new(cx, val.len())?; - buf.as_mut_slice(cx).copy_from_slice(&val); + let mut buf= JsBuffer::new(cx, val.len()).unwrap(); + + let lock = cx.lock(); + match buf.try_borrow_mut(&lock) { + Ok(mut dest) => dest.copy_from_slice(&val), + Err(error) => log::error!("Error while copying buffer: {:?}", error) + } obj.set(cx, "body", buf)?; }