molstar
Version:
A comprehensive macromolecular library.
55 lines (54 loc) • 2.54 kB
JavaScript
/**
* Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @author David Sehnal <david.sehnal@gmail.com>
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileHandle = void 0;
var mol_util_1 = require("../../mol-util");
var simple_buffer_1 = require("./simple-buffer");
var FileHandle;
(function (FileHandle) {
function fromBuffer(buffer, name) {
return {
name: name,
readBuffer: function (position, sizeOrBuffer, size, byteOffset) {
var bytesRead;
var outBuffer;
if (typeof sizeOrBuffer === 'number') {
size = (0, mol_util_1.defaults)(size, sizeOrBuffer);
var start = position;
var end = Math.min(buffer.length, start + size);
bytesRead = end - start;
outBuffer = simple_buffer_1.SimpleBuffer.fromUint8Array(new Uint8Array(buffer.buffer, start, end - start));
}
else {
size = (0, mol_util_1.defaults)(size, sizeOrBuffer.length);
var start = position;
var end = Math.min(buffer.length, start + size);
sizeOrBuffer.set(buffer.subarray(start, end), byteOffset);
bytesRead = end - start;
outBuffer = sizeOrBuffer;
}
if (size !== bytesRead) {
console.warn("byteCount ".concat(size, " and bytesRead ").concat(bytesRead, " differ"));
}
return Promise.resolve({ bytesRead: bytesRead, buffer: outBuffer });
},
writeBuffer: function (position, buffer, length) {
length = (0, mol_util_1.defaults)(length, buffer.length);
console.error('.writeBuffer not implemented for FileHandle.fromBuffer');
return Promise.resolve(0);
},
writeBufferSync: function (position, buffer, length) {
length = (0, mol_util_1.defaults)(length, buffer.length);
console.error('.writeSync not implemented for FileHandle.fromBuffer');
return 0;
},
close: mol_util_1.noop
};
}
FileHandle.fromBuffer = fromBuffer;
})(FileHandle = exports.FileHandle || (exports.FileHandle = {}));
;