node-hk-zip
Version:
UNZIP implementation for NodeJS
47 lines • 2.77 kB
JavaScript
;
/**
* @fileOverview Definition of DataDescriptor class
*/
Object.defineProperty(exports, "__esModule", { value: true });
const InvalidDataDescriptorHeaderError_1 = require("../errors/InvalidDataDescriptorHeaderError");
const ZipByteMap_1 = require("../ZipByteMap");
const HeaderMap_1 = require("./HeaderMap");
/**
* Class representing a DataDescriptor
* @extends HeaderMap<IDataDescriptorByteMap>
*/
class DataDescriptor extends HeaderMap_1.HeaderMap {
/**
* Creates a DataDescriptor object
* @param {Buffer} input - ZipFile data in binary
* @param {number} offset - Offset of the header
* @return {DataDescriptor} - DataDescriptor header object
*/
constructor(input, offset) {
super(ZipByteMap_1.DATA_DESCRIPTOR_MAP, input, offset);
this.parsed = this.loadBinaryHeader();
}
/**
* Getter method for CRC-32
* @return {number} num - CRC value
*/
getCRC32() {
return this.parsed.CRC;
}
/**
* Parses data descriptor header using ByteMap
* @return {IParsedDataDescriptor} - IParsedDataDescriptor object
*/
loadBinaryHeader() {
if (!this.isValidHeaderData()) {
throw new InvalidDataDescriptorHeaderError_1.InvalidDataDescriptorHeaderError();
}
return {
CRC: this.data.readUInt32LE(this.map.CRC),
COMPRESSED_SIZE: this.data.readUInt32LE(this.map.COMPRESSED_SIZE),
UNCOMPRESSED_SIZE: this.data.readUInt32LE(this.map.UNCOMPRESSED_SIZE)
};
}
}
exports.DataDescriptor = DataDescriptor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YURlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlYWRlcnMvRGF0YURlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOztBQUVILGlHQUE4RjtBQUs5Riw4Q0FBb0Q7QUFDcEQsMkNBQXdDO0FBRXhDOzs7R0FHRztBQUNILE1BQWEsY0FBZSxTQUFRLHFCQUFpQztJQUduRTs7Ozs7T0FLRztJQUNILFlBQVksS0FBYSxFQUFFLE1BQWM7UUFDdkMsS0FBSyxDQUFDLGdDQUFtQixFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUM3QixNQUFNLElBQUksbUVBQWdDLEVBQUUsQ0FBQztTQUM5QztRQUNELE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDekMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ2pFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUM7U0FDdEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBDRCx3Q0FvQ0MifQ==