const decoder = new TextDecoder("utf-8"); | |
export function stringify_stream_bytes(bytes) { | |
return decoder.decode(bytes); | |
} | |
export function jsonize_stream_data(data) { | |
var json_chunks = []; | |
data = data | |
.replace(/^data:\s*/gm, "") | |
.replace(/\[DONE\]/gm, "") | |
.split("\n") | |
.filter(function (line) { | |
return line.trim().length > 0; | |
}) | |
.map(function (line) { | |
try { | |
// ToFix: Single line broken into multiple chunks | |
json_chunks.push(JSON.parse(line.trim())); | |
} catch { | |
console.log(`Failed to parse: ${line}`); | |
} | |
}); | |
return json_chunks; | |
} | |
export function transform_footnote(text) { | |
return text | |
.replace(/\[\^(\d+)\^\]\[\d+\]/g, "[$1]") | |
.replace(/\[(\d+)\]:\s*(.*)\s*""/g, "[$1] $2 \n"); | |
} | |