Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 12x 12x 12x 12x 2x 2x 2x 2x 12x 2x 2x 2x 2x 1x 1x 2x 2x 2x 2x 2x 2x | import { parseGameObjectsFile } from "../gameObjectsParser/gameObjectsImporter"
import { validateGameObjects } from "../gameObjectsParser/gameObjectsValidator"
import { ungzip } from "pako"
export const readFiles = (files: FileList): Promise<string>[] => {
const readFilesPromises = []
// biome-ignore lint/style/useForOf: FileList is not iterable, therefore we cannot use for-of loop
for (let index = 0; index < files.length; index++) {
readFilesPromises.push(readFile(files[index]))
}
return readFilesPromises
}
const readFile = async (file: File): Promise<string> =>
new Promise(resolve => {
const isCompressed = file.name.endsWith(".gz")
const reader = new FileReader()
if (isCompressed) {
reader.readAsArrayBuffer(file)
} else {
reader.readAsText(file, "utf8")
}
let content: string
reader.onload = event => {
const result = event.target.result.toString()
content = isCompressed ? ungzip(event.target.result, { to: "string" }) : result
Iif (result.includes("gameObjectPositions") && validateGameObjects(result)) {
content = JSON.stringify(parseGameObjectsFile(result))
}
}
reader.onloadend = () => {
resolve(content)
}
})
|