1

so I am using requestly to modify the http responses

function modifyResponse(args) {
  const {method, url, response, responseType, requestHeaders, requestData, responseJSON} = args;
  console.log(response)
  return response;
}

so this function returns response, response is the actual response coming from the server, I can change it with the function, the problem is this: when I console.log the response I get this

ArrayBuffer(53)
byteLength: 53
[[Prototype]]: ArrayBuffer
[[Int8Array]]: Int8Array(53)
[[Uint8Array]]: Uint8Array(53)
[[ArrayBufferByteLength]]: 53
[[ArrayBufferData]]: 629

https://ibb.co/zQVbvLq

I tried reading through the array (image above), and found out that it's all in ascii, that is not the problem,I want to do something like this

Int8Array[0] = 10

the problem is that I don't have the knowledge to do it, I don't know how to access Int8Array through the modifyResponse function.

I have to change the function to something like this :

function modifyResponse(args) {
  const {method, url, response, responseType, requestHeaders, requestData, responseJSON} = args;
  //console.log(response)
response[Int8Array[0]] = 10
  return response;
}

I basically have to access response then access Int8Array and then change the element at index 0, but it does not work :/ can anyone help me?

Sachin Jain
  • 21,353
  • 33
  • 103
  • 168

1 Answers1

1

The [[Int8Array]] is an internal property - you cannot simply access it as you would with any other property.

If you want to edit the ArrayBuffer as an Int8Array you need to construct it like so:

const array = new Int8Array(response);
array[0] = 10;
return response;
skara9
  • 4,042
  • 1
  • 6
  • 21