MCPcopy Create free account
hub / github.com/CoderLine/alphaTab / writeEntry

Method writeEntry

packages/alphatab/src/zip/ZipWriter.ts:45–91  ·  view source on GitHub ↗
(entry: ZipEntry)

Source from the content-addressed store, hash-verified

43 }
44
45 public writeEntry(entry: ZipEntry) {
46 // 4.3.7 local file header
47 const compressionMode = ZipEntry.CompressionMethodDeflate;
48
49 const compressedData = ByteBuffer.empty();
50 const crc32 = this._compress(compressedData, entry.data, compressionMode);
51 const compressedDataArray = compressedData.toArray();
52 const directoryHeader = new ZipCentralDirectoryHeader(
53 entry,
54 crc32,
55 this._data.bytesWritten,
56 compressionMode,
57 compressedData.length
58 );
59 this._centralDirectoryHeaders.push(directoryHeader);
60
61 // Signature
62 IOHelper.writeInt32LE(this._data, ZipEntry.LocalFileHeaderSignature);
63 // Version
64 IOHelper.writeUInt16LE(this._data, 10);
65 // Flags
66 IOHelper.writeUInt16LE(this._data, 0x0800);
67 // Compression
68 IOHelper.writeUInt16LE(this._data, compressionMode);
69 // last mod file time
70 IOHelper.writeInt16LE(this._data, 0);
71 // last mod file date
72 IOHelper.writeInt16LE(this._data, 0);
73 // crc-32
74 IOHelper.writeInt32LE(this._data, crc32);
75 // compressed size
76 IOHelper.writeInt32LE(this._data, compressedDataArray.length);
77 // uncompressed size
78 IOHelper.writeInt32LE(this._data, entry.data.length);
79 // file name length
80 IOHelper.writeInt16LE(this._data, entry.fullName.length);
81 // extra field length
82 IOHelper.writeInt16LE(this._data, 0);
83 // file name (variable size)
84 const fileNameBuffer = IOHelper.stringToBytes(entry.fullName);
85 this._data.write(fileNameBuffer, 0, fileNameBuffer.length);
86 // extra field (variable size)
87 // <empty>
88
89 // 4.3.8 File Data
90 this._data.write(compressedDataArray, 0, compressedDataArray.length);
91 }
92
93 private _compress(output: IWriteable, data: Uint8Array, compressionMode: number): number {
94 if (compressionMode !== ZipEntry.CompressionMethodDeflate) {

Callers 2

writeScoreMethod · 0.95

Calls 9

_compressMethod · 0.95
emptyMethod · 0.80
toArrayMethod · 0.80
writeInt32LEMethod · 0.80
writeUInt16LEMethod · 0.80
writeInt16LEMethod · 0.80
stringToBytesMethod · 0.80
writeMethod · 0.65
pushMethod · 0.45

Tested by

no test coverage detected