Vue/HTML/JS how to download a file to browser using the download tag

You can fetch the file as a blob and provide it the same way, there will be no request that leads into CORS issues. Template <a :href=”item.url” v-text=”item.label” @click.prevent=”downloadItem(item)” /> Vue methods: { downloadItem ({ url, label }) { Axios.get(url, { responseType: ‘blob’ }) .then(response => { const blob = new Blob([response.data], { type: ‘application/pdf’ … Read more

Type ‘string | ArrayBuffer’ is not assignable to type ‘string’

The error message says it all. You declare a string type of csv variable. You then assign string | ArrayBuffer type (of reader.result) to the string type, you just assigned. You cannot. You only can assign string to string. So, if you 100% sure that reader.result contains string you could assert this: const csv: string … Read more

how does axios handle blob vs arraybuffer as responseType?

From axios docs: // `responseType` indicates the type of data that the server will respond with // options are: ‘arraybuffer’, ‘document’, ‘json’, ‘text’, ‘stream’ // browser only: ‘blob’ responseType: ‘json’, // default ‘blob’ is a “browser only” option. So from node.js, when you set responseType: “blob”, “json”will actually be used, which I guess fallbacks to … Read more

Javascript Typed Arrays and Endianness

The current behaviour, is determined by the endianness of the underlying hardware. As almost all desktop computers are x86, this means little-endian. Most ARM OSes use little-endian mode (ARM processors are bi-endian and thus can operate in either). The reason why this is somewhat sad is the fact that it means almost nobody will test … Read more

How to go from Blob to ArrayBuffer

You can use FileReader to read the Blob as an ArrayBuffer. Here’s a short example: var arrayBuffer; var fileReader = new FileReader(); fileReader.onload = function(event) { arrayBuffer = event.target.result; }; fileReader.readAsArrayBuffer(blob); Here’s a longer example: // ArrayBuffer -> Blob var uint8Array = new Uint8Array([1, 2, 3]); var arrayBuffer = uint8Array.buffer; var blob = new Blob([arrayBuffer]); … Read more

Convert a binary NodeJS Buffer to JavaScript ArrayBuffer

Instances of Buffer are also instances of Uint8Array in node.js 4.x and higher. Thus, the most efficient solution is to access the buf.buffer property directly, as per https://stackoverflow.com/a/31394257/1375574. The Buffer constructor also takes an ArrayBufferView argument if you need to go the other direction. Note that this will not create a copy, which means that … Read more

ArrayBuffer to base64 encoded string

function _arrayBufferToBase64( buffer ) { var binary = ”; var bytes = new Uint8Array( buffer ); var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode( bytes[ i ] ); } return window.btoa( binary ); } but, non-native implementations are faster e.g. https://gist.github.com/958841 see http://jsperf.com/encoding-xhr-image-data/6 Updated benchmarks: https://jsben.ch/wnaZC