in bindings/akamai/src/index.ts [54:82]
async pull(controller) {
const { value: chunk, done: readerDone } = await inputReader.read();
if (chunk) {
buffer += decoder.decode(chunk);
}
if (!found) {
// Only perform replacement if not already found.
let targetIndex = buffer.indexOf(targetStr);
if (targetIndex !== -1) {
const beforeTarget = buffer.slice(0, targetIndex);
const afterTarget = buffer.slice(targetIndex + targetStr.length);
controller.enqueue(encoder.encode(beforeTarget + replacementStr));
buffer = afterTarget;
targetIndex = -1;
found = true;
}
}
if (readerDone) {
controller.enqueue(encoder.encode(buffer));
controller.close();
} else if (buffer.length > targetStr.length && !found) {
const safeChunk = buffer.slice(0, buffer.length - targetStr.length);
controller.enqueue(encoder.encode(safeChunk));
buffer = buffer.slice(buffer.length - targetStr.length);
}
},