slimfits
Version:
Package for loading data stored in FITS data format
60 lines • 2.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var interfaces_1 = require("../interfaces");
var ArrayUtils_1 = require("../utils/ArrayUtils");
var BlobFile = /** @class */ (function () {
function BlobFile(file) {
this.file = file;
this.url = '';
this.url = file.name;
}
BlobFile.prototype.initialize = function () {
var _this = this;
return this.getStringAsync(0, 6).then(function (value) {
return (value === 'SIMPLE') && (_this.getByteLength() % 2880 === 0);
});
};
BlobFile.prototype.getByteLength = function () {
return this.file.size;
};
BlobFile.prototype.getStringAsync = function (start, length) {
var _this = this;
return new Promise(function (resolve, reject) {
var blob = _this.file.slice(start, start + length);
var reader = new FileReader();
reader.onloadend = function (evt) {
if (reader.readyState === reader.DONE) {
// TODO: check what is the issue here
resolve(reader.result);
}
else {
reject(reader.error);
}
};
return reader.readAsText(blob, 'ASCII');
});
};
BlobFile.prototype.getDataAsync = function (start, length, bitPix, changeEndian) {
var _this = this;
if (changeEndian === void 0) { changeEndian = true; }
return new Promise(function (resolve, reject) {
var blob = _this.file.slice(start, start + length * interfaces_1.BitPixUtils.getByteSize(bitPix));
var reader = new FileReader();
reader.onloadend = function (evt) {
if (reader.readyState === reader.DONE) {
var typedArray = ArrayUtils_1.ArrayUtils.generateTypedArray(bitPix, length);
// TODO check if this <any> cast is necessary
ArrayUtils_1.ArrayUtils.copy(reader.result, typedArray.buffer, 0, length, bitPix, changeEndian);
resolve(typedArray);
}
else {
reject(reader.error);
}
};
reader.readAsArrayBuffer(blob);
});
};
return BlobFile;
}());
exports.BlobFile = BlobFile;
//# sourceMappingURL=BlobFile.js.map