Skip to content

Instantly share code, notes, and snippets.

@dipsywong98
Created January 12, 2021 15:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dipsywong98/e68ecc61b338e23e8d6d5fdcb22db691 to your computer and use it in GitHub Desktop.
Save dipsywong98/e68ecc61b338e23e8d6d5fdcb22db691 to your computer and use it in GitHub Desktop.
Read twf
import pako from 'pako'
const gzipB64ToJson = textbuffer => {
const s1 = new TextDecoder('utf-8').decode(pako.inflate(atob(textbuffer)))
const start = s1.indexOf('{')
const end = s1.lastIndexOf('}')
const s2 = s1.slice(start, end + 1).replace(/[,{](\d+):/g, '"$1":')
const map = JSON.parse(s2)
return map
}
export default gzipB64ToJson
const readFile = target => async file => new Promise((resolve) => {
const reader = new FileReader()
reader.addEventListener(
'load',
({ target: { result } }) => (
resolve(result)
)
)
switch (target) {
case 'readAsDataURL':
case 'dataURL':
case 'base64':
reader.readAsDataURL(file)
break
case 'readAsText':
case 'text':
reader.readAsText(file)
break
case 'buffer':
case 'arrayBuffer':
case 'readAsArrayBuffer':
reader.readAsArrayBuffer(file)
break
case 'bs':
case 'binaryString':
case 'readAsBinaryString':
reader.readAsBinaryString(file)
break
default:
throw new Error(`readFile received an unknown option ${target}`)
}
})
const readFileAsDataURL = readFile('readAsDataURL')
const readFileAsText = readFile('readAsText')
const readFileAsArrayBuffer = readFile('readAsArrayBuffer')
const readFileAsBinaryString = readFile('readAsBinaryString')
export default readFile
export {
readFileAsDataURL,
readFileAsText,
readFileAsArrayBuffer,
readFileAsBinaryString
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment