Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
process.stdin.on('readable', () => {
const chunk = process.stdin.read();
if (!chunk) return;
const wrapped = ByteBuffer.wrap(chunk);
buf = buf ? ByteBuffer.concat([buf, wrapped]) : wrapped;
try {
let req: WorkRequest;
// Read all requests that have accumulated in the buffer.
while ((req = workerpb.WorkRequest.decodeDelimited(buf)) != null) {
debug('=== Handling new build request');
// Reset accumulated log output.
consoleOutput = '';
const args = req.getArguments();
const inputs: {[path: string]: string} = {};
for (const input of req.getInputs()) {
inputs[input.getPath()] = input.getDigest().toString('hex');
}
debug('Compiling with:\n\t' + args.join('\n\t'));
const exitCode = runOneBuild(args, inputs) ? 0 : 1;
process.stdout.write(new workerpb.WorkResponse()
.setExitCode(exitCode)
}
if([1, 3, 4, 7].includes(packet.reliability)) {
byteBuffer.flip()
byteBuffer = ByteBuffer.concat([byteBuffer, EncapsulatedPacket.writeLTriad(packet.orderIndex)])
byteBuffer.offset = byteBuffer.limit
byteBuffer.writeByte(packet.orderChannel)
}
if(packet.hasSplit) {
byteBuffer.writeInt(packet.splitCount)
byteBuffer.writeShort(packet.splitId)
byteBuffer.writeInt(packet.splitIndex)
}
byteBuffer = ByteBuffer.concat([byteBuffer.reset(), packetBuffer])
byteBuffer.offset = byteBuffer.limit
})
}
if(!packet.hasSplit) packet.hasSplit = false
const packetBuffer = packet.encode()
byteBuffer.writeByte((packet.reliability << 5) | (packet.hasSplit ? 0x10 : 0x00))
byteBuffer.writeShort(packetBuffer.limit << 3)
if([2, 3, 4, 6, 7].includes(packet.reliability)) {
byteBuffer.flip()
byteBuffer = ByteBuffer.concat([byteBuffer, EncapsulatedPacket.writeLTriad(packet.messageIndex)])
byteBuffer.offset = byteBuffer.limit
}
if([1, 3, 4, 7].includes(packet.reliability)) {
byteBuffer.flip()
byteBuffer = ByteBuffer.concat([byteBuffer, EncapsulatedPacket.writeLTriad(packet.orderIndex)])
byteBuffer.offset = byteBuffer.limit
byteBuffer.writeByte(packet.orderChannel)
}
if(packet.hasSplit) {
byteBuffer.writeInt(packet.splitCount)
byteBuffer.writeShort(packet.splitId)
byteBuffer.writeInt(packet.splitIndex)
}
byteBuffer = ByteBuffer.concat([byteBuffer.reset(), packetBuffer])
byteBuffer.offset = byteBuffer.limit
})
}
this.packets.forEach(packet => {
if(!packet.reliability) packet.reliability = 0
if(!packet.hasSplit) packet.hasSplit = false
const packetBuffer = packet.encode()
byteBuffer.writeByte((packet.reliability << 5) | (packet.hasSplit ? 0x10 : 0x00))
byteBuffer.writeShort(packetBuffer.limit << 3)
if([2, 3, 4, 6, 7].includes(packet.reliability)) {
byteBuffer.flip()
byteBuffer = ByteBuffer.concat([byteBuffer, EncapsulatedPacket.writeLTriad(packet.messageIndex)])
byteBuffer.offset = byteBuffer.limit
}
if([1, 3, 4, 7].includes(packet.reliability)) {
byteBuffer.flip()
byteBuffer = ByteBuffer.concat([byteBuffer, EncapsulatedPacket.writeLTriad(packet.orderIndex)])
byteBuffer.offset = byteBuffer.limit
byteBuffer.writeByte(packet.orderChannel)
}
if(packet.hasSplit) {
byteBuffer.writeInt(packet.splitCount)
byteBuffer.writeShort(packet.splitId)
byteBuffer.writeInt(packet.splitIndex)
}
encode() {
let byteBuffer = new ByteBuffer()
if(this.packets.length) {
byteBuffer.writeByte(this.id)
byteBuffer.flip()
byteBuffer = ByteBuffer.concat([byteBuffer, EncapsulatedPacket.writeLTriad(this.sequenceNumber)])
byteBuffer.offset = byteBuffer.limit
this.packets.forEach(packet => {
if(!packet.reliability) packet.reliability = 0
if(!packet.hasSplit) packet.hasSplit = false
const packetBuffer = packet.encode()
byteBuffer.writeByte((packet.reliability << 5) | (packet.hasSplit ? 0x10 : 0x00))
byteBuffer.writeShort(packetBuffer.limit << 3)
if([2, 3, 4, 6, 7].includes(packet.reliability)) {
byteBuffer.flip()
byteBuffer = ByteBuffer.concat([byteBuffer, EncapsulatedPacket.writeLTriad(packet.messageIndex)])
byteBuffer.offset = byteBuffer.limit
}