molstar
Version:
A comprehensive macromolecular library.
61 lines (60 loc) • 2.08 kB
JavaScript
/**
* Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { __awaiter, __generator } from "tslib";
export function readFile(file, isBinary) {
if (isBinary === void 0) { isBinary = false; }
var fileReader = new FileReader();
return new Promise(function (resolve, reject) {
fileReader.onerror = function () {
fileReader.abort();
reject(new DOMException('Error parsing file.'));
};
fileReader.onload = function () {
resolve(isBinary ? new Uint8Array(fileReader.result) : fileReader.result);
};
if (isBinary) {
fileReader.readAsArrayBuffer(file);
}
else {
fileReader.readAsText(file);
}
});
}
export function readFileAsText(file) {
return readFile(file, false);
}
export function readFileAsBuffer(file) {
return readFile(file, true);
}
export function readUrl(url, isBinary) {
return __awaiter(this, void 0, void 0, function () {
var response, _a, _b;
return __generator(this, function (_c) {
switch (_c.label) {
case 0: return [4 /*yield*/, fetch(url)];
case 1:
response = _c.sent();
if (!isBinary) return [3 /*break*/, 3];
_b = Uint8Array.bind;
return [4 /*yield*/, response.arrayBuffer()];
case 2:
_a = new (_b.apply(Uint8Array, [void 0, _c.sent()]))();
return [3 /*break*/, 5];
case 3: return [4 /*yield*/, response.text()];
case 4:
_a = _c.sent();
_c.label = 5;
case 5: return [2 /*return*/, _a];
}
});
});
}
export function readUrlAsText(url) {
return readUrl(url, false);
}
export function readUrlAsBuffer(url) {
return readUrl(url, true);
}