UNPKG

@tanstack/router-core

Version:

Modern and scalable routing for React applications

55 lines (54 loc) 1.95 kB
const require_constants = require("../constants.cjs"); let seroval = require("seroval"); //#region src/ssr/serializer/transformer.ts /** * Create a strongly-typed serialization adapter for SSR hydration. * Use to register custom types with the router serializer. */ function createSerializationAdapter(opts) { return opts; } /** Create a Seroval plugin for server-side serialization only. */ /* @__NO_SIDE_EFFECTS__ */ function makeSsrSerovalPlugin(serializationAdapter, options) { return /* @__PURE__ */ (0, seroval.createPlugin)({ tag: "$TSR/t/" + serializationAdapter.key, test: serializationAdapter.test, parse: { stream(value, ctx, _data) { return { v: ctx.parse(serializationAdapter.toSerializable(value)) }; } }, serialize(node, ctx, _data) { options.didRun = true; return require_constants.GLOBAL_TSR + ".t.get(\"" + serializationAdapter.key + "\")(" + ctx.serialize(node.v) + ")"; }, deserialize: void 0 }); } /** Create a Seroval plugin for client/server symmetric (de)serialization. */ /* @__NO_SIDE_EFFECTS__ */ function makeSerovalPlugin(serializationAdapter) { return /* @__PURE__ */ (0, seroval.createPlugin)({ tag: "$TSR/t/" + serializationAdapter.key, test: serializationAdapter.test, parse: { sync(value, ctx, _data) { return { v: ctx.parse(serializationAdapter.toSerializable(value)) }; }, async async(value, ctx, _data) { return { v: await ctx.parse(serializationAdapter.toSerializable(value)) }; }, stream(value, ctx, _data) { return { v: ctx.parse(serializationAdapter.toSerializable(value)) }; } }, serialize: void 0, deserialize(node, ctx, _data) { return serializationAdapter.fromSerializable(ctx.deserialize(node.v)); } }); } //#endregion exports.createSerializationAdapter = createSerializationAdapter; exports.makeSerovalPlugin = makeSerovalPlugin; exports.makeSsrSerovalPlugin = makeSsrSerovalPlugin; //# sourceMappingURL=transformer.cjs.map