{"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"}