Files
klz-cables.com/.pnpm-store/v10/files/41/ed856626eff08573d229870097f6e3bddcadf3a4971ba7f07c334ca9eee403f04ee89d19371f77fca0d70c7a00a13dc5ead091de1b93b885c87189dc4986a6
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

57 lines
1.5 KiB
Plaintext

'use strict'
const BufferList = require('obuf')
const { Transform } = require('stream')
const State = {
READ_PREFIX: 1,
READ_DATA: 2
}
class ByteaDecoder extends Transform {
constructor () {
super()
this._incomingChunks = new BufferList()
this._state = State.READ_PREFIX
}
_transform (chunk, encoding, callback) {
this._incomingChunks.push(chunk)
while (true) {
if (this._state === State.READ_PREFIX) {
if (this._incomingChunks.has(3)) {
const prefix = this._incomingChunks.take(3)
const prefixString = prefix.toString()
if (prefixString !== '\\\\x') {
return this.emit('error', new Error(`Expected double-escaped postgres bytea hex format prefix, received: '${prefixString}'`))
}
this._state = State.READ_DATA
continue
} else {
break
}
}
if (this._state === State.READ_DATA) {
if (this._incomingChunks.size >= 2) {
// two hex characters are needed to parse a byte. read even number of chars, and let remainder roll over
let evenChunk
const isEvenLength = this._incomingChunks.size % 2 === 0
if (isEvenLength) {
evenChunk = this._incomingChunks.take(this._incomingChunks.size)
} else {
evenChunk = this._incomingChunks.take(this._incomingChunks.size - 1)
}
this.push(Buffer.from(evenChunk.toString(), 'hex'))
}
break
}
}
callback()
}
}
module.exports = ByteaDecoder