@assistant-ui/react
Version:
React components for AI chat.
1 lines • 1.61 kB
Source Map (JSON)
{"version":3,"sources":["../../../../../src/runtimes/edge/streams/utils/streamPartDecoderStream.ts"],"sourcesContent":["import { chunkByLineStream } from \"./chunkByLineStream\";\nimport { PipeableTransformStream } from \"./PipeableTransformStream\";\nimport { StreamPart } from \"./StreamPart\";\n\nconst decodeStreamPart = <T extends Record<string, unknown>>(\n part: string,\n): StreamPart<T> => {\n const index = part.indexOf(\":\");\n if (index === -1) throw new Error(\"Invalid stream part\");\n return {\n type: part.slice(0, index),\n value: JSON.parse(part.slice(index + 1)),\n };\n};\n\nexport function streamPartDecoderStream<T extends Record<string, unknown>>() {\n const decodeStream = new TransformStream<string, StreamPart<T>>({\n transform(chunk, controller) {\n controller.enqueue(decodeStreamPart<T>(chunk));\n },\n });\n\n return new PipeableTransformStream((readable) => {\n return readable\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(chunkByLineStream())\n .pipeThrough(decodeStream);\n });\n}\n"],"mappings":";AAAA,SAAS,yBAAyB;AAClC,SAAS,+BAA+B;AAGxC,IAAM,mBAAmB,CACvB,SACkB;AAClB,QAAM,QAAQ,KAAK,QAAQ,GAAG;AAC9B,MAAI,UAAU,GAAI,OAAM,IAAI,MAAM,qBAAqB;AACvD,SAAO;AAAA,IACL,MAAM,KAAK,MAAM,GAAG,KAAK;AAAA,IACzB,OAAO,KAAK,MAAM,KAAK,MAAM,QAAQ,CAAC,CAAC;AAAA,EACzC;AACF;AAEO,SAAS,0BAA6D;AAC3E,QAAM,eAAe,IAAI,gBAAuC;AAAA,IAC9D,UAAU,OAAO,YAAY;AAC3B,iBAAW,QAAQ,iBAAoB,KAAK,CAAC;AAAA,IAC/C;AAAA,EACF,CAAC;AAED,SAAO,IAAI,wBAAwB,CAAC,aAAa;AAC/C,WAAO,SACJ,YAAY,IAAI,kBAAkB,CAAC,EACnC,YAAY,kBAAkB,CAAC,EAC/B,YAAY,YAAY;AAAA,EAC7B,CAAC;AACH;","names":[]}