UNPKG

@tanstack/router-core

Version:

Modern and scalable routing for React applications

1 lines 2.09 kB
{"version":3,"file":"RawStreamRPCPlugin.cjs","names":[],"sources":["../../../../src/ssr/serializer/RawStreamRPCPlugin.ts"],"sourcesContent":["import { createPlugin } from 'seroval'\nimport { RawStream } from './RawStream'\nimport type { OnRawStreamCallback, RawStreamRPCNode } from './RawStream'\n\n/**\n * Server-side RawStream plugin for multiplexed server-function responses.\n * The `hint` is ignored: framed responses always carry raw bytes.\n */\n/* @__NO_SIDE_EFFECTS__ */\nexport function createRawStreamRPCPlugin(onRawStream: OnRawStreamCallback) {\n let nextStreamId = 1\n\n return /* @__PURE__ */ createPlugin<RawStream, RawStreamRPCNode>({\n tag: 'tss/RawStream',\n test(value: unknown) {\n return value instanceof RawStream\n },\n parse: {\n stream(value, ctx) {\n const streamId = nextStreamId++\n onRawStream(streamId, value.stream)\n return { streamId: ctx.parse(streamId) }\n },\n },\n serialize: undefined as never,\n deserialize: undefined as never,\n })\n}\n\n/** Client-side RawStream plugin for multiplexed server-function responses. */\n/* @__NO_SIDE_EFFECTS__ */\nexport function createRawStreamDeserializePlugin(\n getStream: (id: number) => ReadableStream<Uint8Array>,\n) {\n return /* @__PURE__ */ createPlugin<\n ReadableStream<Uint8Array>,\n RawStreamRPCNode\n >({\n tag: 'tss/RawStream',\n test: () => false,\n parse: {},\n serialize: undefined as never,\n deserialize(node, ctx) {\n return getStream(ctx.deserialize<number>(node.streamId))\n },\n })\n}\n"],"mappings":";;;;;;;;AASA,SAAgB,yBAAyB,aAAkC;CACzE,IAAI,eAAe;CAEnB,OAAuB,iBAAA,GAAA,QAAA,cAA0C;EAC/D,KAAK;EACL,KAAK,OAAgB;GACnB,OAAO,iBAAiB,kBAAA;EAC1B;EACA,OAAO,EACL,OAAO,OAAO,KAAK;GACjB,MAAM,WAAW;GACjB,YAAY,UAAU,MAAM,MAAM;GAClC,OAAO,EAAE,UAAU,IAAI,MAAM,QAAQ,EAAE;EACzC,EACF;EACA,WAAW,KAAA;EACX,aAAa,KAAA;CACf,CAAC;AACH;;;AAIA,SAAgB,iCACd,WACA;CACA,OAAuB,iBAAA,GAAA,QAAA,cAGrB;EACA,KAAK;EACL,YAAY;EACZ,OAAO,CAAC;EACR,WAAW,KAAA;EACX,YAAY,MAAM,KAAK;GACrB,OAAO,UAAU,IAAI,YAAoB,KAAK,QAAQ,CAAC;EACzD;CACF,CAAC;AACH"}