UNPKG

@tanstack/router-core

Version:

Modern and scalable routing for React applications

1 lines 1.67 kB
{"version":3,"file":"makeSsrSerovalPlugin.cjs","names":[],"sources":["../../../../src/ssr/serializer/makeSsrSerovalPlugin.ts"],"sourcesContent":["import { createPlugin } from 'seroval'\nimport { GLOBAL_TSR } from '../constants'\nimport type { AdapterNode, AnySerializationAdapter } from './transformer'\nimport type { Plugin } from 'seroval'\n\n/**\n * Create a Seroval plugin for server-side serialization only. `tracker.didRun`\n * becomes true once the plugin serialized a value.\n */\n/* @__NO_SIDE_EFFECTS__ */\nexport function makeSsrSerovalPlugin(\n serializationAdapter: AnySerializationAdapter,\n tracker?: { didRun: boolean },\n): Plugin<any, AdapterNode> {\n return /* @__PURE__ */ createPlugin<any, AdapterNode>({\n tag: '$TSR/t/' + serializationAdapter.key,\n test: serializationAdapter.test,\n parse: {\n stream(value, ctx) {\n return {\n v: ctx.parse(serializationAdapter.toSerializable(value)),\n }\n },\n },\n serialize(node, ctx) {\n if (tracker) {\n tracker.didRun = true\n }\n return (\n GLOBAL_TSR +\n '.t.get(\"' +\n serializationAdapter.key +\n '\")(' +\n ctx.serialize(node.v) +\n ')'\n )\n },\n deserialize: undefined as never,\n })\n}\n"],"mappings":";;;;;;;;AAUA,SAAgB,qBACd,sBACA,SAC0B;CAC1B,OAAuB,iBAAA,GAAA,QAAA,cAA+B;EACpD,KAAK,YAAY,qBAAqB;EACtC,MAAM,qBAAqB;EAC3B,OAAO,EACL,OAAO,OAAO,KAAK;GACjB,OAAO,EACL,GAAG,IAAI,MAAM,qBAAqB,eAAe,KAAK,CAAC,EACzD;EACF,EACF;EACA,UAAU,MAAM,KAAK;GACnB,IAAI,SACF,QAAQ,SAAS;GAEnB,OACE,kBAAA,aACA,cACA,qBAAqB,MACrB,SACA,IAAI,UAAU,KAAK,CAAC,IACpB;EAEJ;EACA,aAAa,KAAA;CACf,CAAC;AACH"}