38 lines
1.5 KiB
JavaScript
38 lines
1.5 KiB
JavaScript
// Objects with this prototype are used as the public representation of a file
|
|
var path = require('path');
|
|
|
|
var FileDetails = function (directoryEntry) {
|
|
// TODO: Add 'extra field' support
|
|
|
|
this._offset = 0;
|
|
this._maxSize = 0;
|
|
|
|
this.parent = path.dirname(directoryEntry.fileName);
|
|
this.filename = path.basename(directoryEntry.fileName);
|
|
this.path = path.normalize(directoryEntry.fileName);
|
|
|
|
this.type = directoryEntry.fileAttributes.type;
|
|
this.mode = directoryEntry.fileAttributes.mode;
|
|
this.compressionMethod = directoryEntry.compressionMethod;
|
|
this.modified = directoryEntry.modifiedTime;
|
|
this.crc32 = directoryEntry.crc32;
|
|
this.compressedSize = directoryEntry.compressedSize;
|
|
this.uncompressedSize = directoryEntry.uncompressedSize;
|
|
this.comment = directoryEntry.fileComment;
|
|
|
|
this.flags = {
|
|
encrypted: directoryEntry.generalPurposeFlags.encrypted,
|
|
compressionFlag1: directoryEntry.generalPurposeFlags.compressionFlag1,
|
|
compressionFlag2: directoryEntry.generalPurposeFlags.compressionFlag2,
|
|
useDataDescriptor: directoryEntry.generalPurposeFlags.useDataDescriptor,
|
|
enhancedDeflating: directoryEntry.generalPurposeFlags.enhancedDeflating,
|
|
compressedPatched: directoryEntry.generalPurposeFlags.compressedPatched,
|
|
strongEncryption: directoryEntry.generalPurposeFlags.strongEncryption,
|
|
utf8: directoryEntry.generalPurposeFlags.utf8,
|
|
encryptedCD: directoryEntry.generalPurposeFlags.encryptedCD
|
|
};
|
|
|
|
};
|
|
|
|
module.exports = FileDetails;
|