@tanstack/router-core
Version:
Modern and scalable routing for React applications
1 lines • 1.72 kB
Source Map (JSON)
{"version":3,"file":"makeSerovalPlugin.cjs","names":[],"sources":["../../../../src/ssr/serializer/makeSerovalPlugin.ts"],"sourcesContent":["import { createPlugin } from 'seroval'\nimport type { AdapterNode, AnySerializationAdapter } from './transformer'\nimport type { Plugin } from 'seroval'\n\n/** Create a Seroval plugin for client/server symmetric (de)serialization. */\n/* @__NO_SIDE_EFFECTS__ */\nexport function makeSerovalPlugin(\n serializationAdapter: AnySerializationAdapter,\n): Plugin<any, AdapterNode> {\n return /* @__PURE__ */ createPlugin<any, AdapterNode>({\n tag: '$TSR/t/' + serializationAdapter.key,\n test: serializationAdapter.test,\n parse: {\n sync(value, ctx) {\n return { v: ctx.parse(serializationAdapter.toSerializable(value)) }\n },\n async async(value, ctx) {\n return {\n v: await ctx.parse(serializationAdapter.toSerializable(value)),\n }\n },\n stream(value, ctx) {\n return { v: ctx.parse(serializationAdapter.toSerializable(value)) }\n },\n },\n serialize: undefined as never,\n deserialize(node, ctx) {\n return serializationAdapter.fromSerializable(ctx.deserialize(node.v))\n },\n })\n}\n"],"mappings":";;;;AAMA,SAAgB,kBACd,sBAC0B;CAC1B,OAAuB,iBAAA,GAAA,QAAA,cAA+B;EACpD,KAAK,YAAY,qBAAqB;EACtC,MAAM,qBAAqB;EAC3B,OAAO;GACL,KAAK,OAAO,KAAK;IACf,OAAO,EAAE,GAAG,IAAI,MAAM,qBAAqB,eAAe,KAAK,CAAC,EAAE;GACpE;GACA,MAAM,MAAM,OAAO,KAAK;IACtB,OAAO,EACL,GAAG,MAAM,IAAI,MAAM,qBAAqB,eAAe,KAAK,CAAC,EAC/D;GACF;GACA,OAAO,OAAO,KAAK;IACjB,OAAO,EAAE,GAAG,IAAI,MAAM,qBAAqB,eAAe,KAAK,CAAC,EAAE;GACpE;EACF;EACA,WAAW,KAAA;EACX,YAAY,MAAM,KAAK;GACrB,OAAO,qBAAqB,iBAAiB,IAAI,YAAY,KAAK,CAAC,CAAC;EACtE;CACF,CAAC;AACH"}