@tanstack/react-query-next-experimental 5.0.0-alpha.86 → 5.0.0-alpha.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/build/legacy/HydrationStreamProvider.cjs +116 -0
  2. package/build/legacy/HydrationStreamProvider.cjs.map +1 -0
  3. package/build/legacy/HydrationStreamProvider.d.cts +58 -0
  4. package/build/{lib → legacy}/HydrationStreamProvider.d.ts +5 -4
  5. package/build/legacy/HydrationStreamProvider.js +82 -0
  6. package/build/legacy/HydrationStreamProvider.js.map +1 -0
  7. package/build/legacy/ReactQueryStreamedHydration.cjs +84 -0
  8. package/build/legacy/ReactQueryStreamedHydration.cjs.map +1 -0
  9. package/build/legacy/ReactQueryStreamedHydration.d.cts +20 -0
  10. package/build/{lib → legacy}/ReactQueryStreamedHydration.d.ts +6 -4
  11. package/build/legacy/ReactQueryStreamedHydration.js +55 -0
  12. package/build/legacy/ReactQueryStreamedHydration.js.map +1 -0
  13. package/build/legacy/index.cjs +29 -0
  14. package/build/legacy/index.cjs.map +1 -0
  15. package/build/legacy/index.d.cts +4 -0
  16. package/build/legacy/index.d.ts +4 -0
  17. package/build/legacy/index.js +5 -0
  18. package/build/legacy/index.js.map +1 -0
  19. package/build/modern/HydrationStreamProvider.cjs +115 -0
  20. package/build/modern/HydrationStreamProvider.cjs.map +1 -0
  21. package/build/modern/HydrationStreamProvider.d.cts +58 -0
  22. package/build/modern/HydrationStreamProvider.d.ts +58 -0
  23. package/build/modern/HydrationStreamProvider.js +81 -0
  24. package/build/modern/HydrationStreamProvider.js.map +1 -0
  25. package/build/modern/ReactQueryStreamedHydration.cjs +82 -0
  26. package/build/modern/ReactQueryStreamedHydration.cjs.map +1 -0
  27. package/build/modern/ReactQueryStreamedHydration.d.cts +20 -0
  28. package/build/modern/ReactQueryStreamedHydration.d.ts +20 -0
  29. package/build/modern/ReactQueryStreamedHydration.js +53 -0
  30. package/build/modern/ReactQueryStreamedHydration.js.map +1 -0
  31. package/build/modern/index.cjs +29 -0
  32. package/build/modern/index.cjs.map +1 -0
  33. package/build/modern/index.d.cts +4 -0
  34. package/build/modern/index.d.ts +4 -0
  35. package/build/modern/index.js +5 -0
  36. package/build/modern/index.js.map +1 -0
  37. package/package.json +18 -16
  38. package/build/lib/HydrationStreamProvider.cjs +0 -120
  39. package/build/lib/HydrationStreamProvider.cjs.map +0 -1
  40. package/build/lib/HydrationStreamProvider.d.ts.map +0 -1
  41. package/build/lib/HydrationStreamProvider.js +0 -99
  42. package/build/lib/HydrationStreamProvider.js.map +0 -1
  43. package/build/lib/HydrationStreamProvider.legacy.cjs +0 -125
  44. package/build/lib/HydrationStreamProvider.legacy.cjs.map +0 -1
  45. package/build/lib/HydrationStreamProvider.legacy.js +0 -104
  46. package/build/lib/HydrationStreamProvider.legacy.js.map +0 -1
  47. package/build/lib/ReactQueryStreamedHydration.cjs +0 -89
  48. package/build/lib/ReactQueryStreamedHydration.cjs.map +0 -1
  49. package/build/lib/ReactQueryStreamedHydration.d.ts.map +0 -1
  50. package/build/lib/ReactQueryStreamedHydration.js +0 -68
  51. package/build/lib/ReactQueryStreamedHydration.js.map +0 -1
  52. package/build/lib/ReactQueryStreamedHydration.legacy.cjs +0 -91
  53. package/build/lib/ReactQueryStreamedHydration.legacy.cjs.map +0 -1
  54. package/build/lib/ReactQueryStreamedHydration.legacy.js +0 -70
  55. package/build/lib/ReactQueryStreamedHydration.legacy.js.map +0 -1
  56. package/build/lib/index.cjs +0 -8
  57. package/build/lib/index.cjs.map +0 -1
  58. package/build/lib/index.d.ts +0 -2
  59. package/build/lib/index.d.ts.map +0 -1
  60. package/build/lib/index.js +0 -2
  61. package/build/lib/index.js.map +0 -1
  62. package/build/lib/index.legacy.cjs +0 -8
  63. package/build/lib/index.legacy.cjs.map +0 -1
  64. package/build/lib/index.legacy.js +0 -2
  65. package/build/lib/index.legacy.js.map +0 -1
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var HydrationStreamProvider_exports = {};
31
+ __export(HydrationStreamProvider_exports, {
32
+ createHydrationStreamProvider: () => createHydrationStreamProvider
33
+ });
34
+ module.exports = __toCommonJS(HydrationStreamProvider_exports);
35
+ var import_navigation = require("next/navigation");
36
+ var React = __toESM(require("react"), 1);
37
+ const serializedSymbol = Symbol("serialized");
38
+ function createHydrationStreamProvider() {
39
+ const context = React.createContext(
40
+ null
41
+ );
42
+ function UseClientHydrationStreamProvider(props) {
43
+ const id = `__RQ${React.useId()}`;
44
+ const idJSON = JSON.stringify(id);
45
+ const [transformer] = React.useState(
46
+ () => props.transformer ?? {
47
+ // noop
48
+ serialize: (obj) => obj,
49
+ deserialize: (obj) => obj
50
+ }
51
+ );
52
+ const [stream] = React.useState(() => {
53
+ if (typeof window !== "undefined") {
54
+ return {
55
+ push() {
56
+ }
57
+ };
58
+ }
59
+ return [];
60
+ });
61
+ const count = React.useRef(0);
62
+ (0, import_navigation.useServerInsertedHTML)(() => {
63
+ var _a;
64
+ stream.push(...((_a = props.onFlush) == null ? void 0 : _a.call(props)) ?? []);
65
+ if (!stream.length) {
66
+ return null;
67
+ }
68
+ const serializedCacheArgs = stream.map((entry) => transformer.serialize(entry)).map((entry) => JSON.stringify(entry)).join(",");
69
+ stream.length = 0;
70
+ const html = [
71
+ `window[${idJSON}] = window[${idJSON}] || [];`,
72
+ `window[${idJSON}].push(${serializedCacheArgs});`
73
+ ];
74
+ return /* @__PURE__ */ React.createElement(
75
+ "script",
76
+ {
77
+ key: count.current++,
78
+ dangerouslySetInnerHTML: {
79
+ __html: html.join("")
80
+ }
81
+ }
82
+ );
83
+ });
84
+ const onEntriesRef = React.useRef(props.onEntries);
85
+ React.useEffect(() => {
86
+ onEntriesRef.current = props.onEntries;
87
+ });
88
+ React.useEffect(() => {
89
+ const onEntries = (...serializedEntries) => {
90
+ const entries = serializedEntries.map(
91
+ (serialized) => transformer.deserialize(serialized)
92
+ );
93
+ onEntriesRef.current(entries);
94
+ };
95
+ const win = window;
96
+ const winStream = win[id] ?? [];
97
+ onEntries(...winStream);
98
+ win[id] = {
99
+ push: onEntries
100
+ };
101
+ return () => {
102
+ win[id] = [];
103
+ };
104
+ }, [id, transformer]);
105
+ return /* @__PURE__ */ React.createElement(context.Provider, { value: { stream, id } }, props.children);
106
+ }
107
+ return {
108
+ Provider: UseClientHydrationStreamProvider,
109
+ context
110
+ };
111
+ }
112
+ // Annotate the CommonJS export names for ESM import in node:
113
+ 0 && (module.exports = {
114
+ createHydrationStreamProvider
115
+ });
116
+ //# sourceMappingURL=HydrationStreamProvider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/HydrationStreamProvider.tsx"],"sourcesContent":["'use client'\n\nimport { useServerInsertedHTML } from 'next/navigation'\nimport * as React from 'react'\n\nconst serializedSymbol = Symbol('serialized')\n\ninterface DataTransformer {\n serialize(object: any): any\n deserialize(object: any): any\n}\n\ntype Serialized<TData> = unknown & {\n [serializedSymbol]: TData\n}\n\ninterface TypedDataTransformer<TData> {\n serialize: (obj: TData) => Serialized<TData>\n deserialize: (obj: Serialized<TData>) => TData\n}\n\ninterface HydrationStreamContext<TShape> {\n id: string\n stream: {\n /**\n * **Server method**\n * Push a new entry to the stream\n * Will be ignored on the client\n */\n push: (...shape: TShape[]) => void\n }\n}\n\nexport interface HydrationStreamProviderProps<TShape> {\n children: React.ReactNode\n /**\n * Optional transformer to serialize/deserialize the data\n * Example devalue, superjson et al\n */\n transformer?: DataTransformer\n /**\n * **Client method**\n * Called in the browser when new entries are received\n */\n onEntries: (entries: TShape[]) => void\n /**\n * **Server method**\n * onFlush is called on the server when the cache is flushed\n */\n onFlush?: () => TShape[]\n}\n\nexport function createHydrationStreamProvider<TShape>() {\n const context = React.createContext<HydrationStreamContext<TShape>>(\n null as any,\n )\n /**\n\n * 1. (Happens on server): `useServerInsertedHTML()` is called **on the server** whenever a `Suspense`-boundary completes\n * - This means that we might have some new entries in the cache that needs to be flushed\n * - We pass these to the client by inserting a `<script>`-tag where we do `window[id].push(serializedVersionOfCache)`\n * 2. (Happens in browser) In `useEffect()`:\n * - We check if `window[id]` is set to an array and call `push()` on all the entries which will call `onEntries()` with the new entries\n * - We replace `window[id]` with a `push()`-method that will be called whenever new entries are received\n **/\n function UseClientHydrationStreamProvider(props: {\n children: React.ReactNode\n /**\n * Optional transformer to serialize/deserialize the data\n * Example devalue, superjson et al\n */\n transformer?: DataTransformer\n /**\n * **Client method**\n * Called in the browser when new entries are received\n */\n onEntries: (entries: TShape[]) => void\n /**\n * **Server method**\n * onFlush is called on the server when the cache is flushed\n */\n onFlush?: () => TShape[]\n }) {\n // unique id for the cache provider\n const id = `__RQ${React.useId()}`\n const idJSON = JSON.stringify(id)\n\n const [transformer] = React.useState(\n () =>\n (props.transformer ?? {\n // noop\n serialize: (obj: any) => obj,\n deserialize: (obj: any) => obj,\n }) as unknown as TypedDataTransformer<TShape>,\n )\n\n // <server stuff>\n const [stream] = React.useState<TShape[]>(() => {\n if (typeof window !== 'undefined') {\n return {\n push() {\n // no-op on the client\n },\n } as unknown as TShape[]\n }\n return []\n })\n const count = React.useRef(0)\n useServerInsertedHTML(() => {\n // This only happens on the server\n stream.push(...(props.onFlush?.() ?? []))\n\n if (!stream.length) {\n return null\n }\n // console.log(`pushing ${stream.length} entries`)\n const serializedCacheArgs = stream\n .map((entry) => transformer.serialize(entry))\n .map((entry) => JSON.stringify(entry))\n .join(',')\n\n // Flush stream\n stream.length = 0\n\n const html: string[] = [\n `window[${idJSON}] = window[${idJSON}] || [];`,\n `window[${idJSON}].push(${serializedCacheArgs});`,\n ]\n return (\n <script\n key={count.current++}\n dangerouslySetInnerHTML={{\n __html: html.join(''),\n }}\n />\n )\n })\n // </server stuff>\n\n // <client stuff>\n const onEntriesRef = React.useRef(props.onEntries)\n React.useEffect(() => {\n onEntriesRef.current = props.onEntries\n })\n\n React.useEffect(() => {\n // Client: consume cache:\n const onEntries = (...serializedEntries: Serialized<TShape>[]) => {\n const entries = serializedEntries.map((serialized) =>\n transformer.deserialize(serialized),\n )\n onEntriesRef.current(entries)\n }\n\n const win = window as any\n // Register cache consumer\n const winStream: Array<Serialized<TShape>> = win[id] ?? []\n\n onEntries(...winStream)\n\n // Register our own consumer\n win[id] = {\n push: onEntries,\n }\n\n return () => {\n // Cleanup after unmount\n win[id] = []\n }\n }, [id, transformer])\n // </client stuff>\n\n return (\n <context.Provider value={{ stream, id }}>\n {props.children}\n </context.Provider>\n )\n }\n\n return {\n Provider: UseClientHydrationStreamProvider,\n context,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAAsC;AACtC,YAAuB;AAEvB,MAAM,mBAAmB,OAAO,YAAY;AA+CrC,SAAS,gCAAwC;AACtD,QAAM,UAAU,MAAM;AAAA,IACpB;AAAA,EACF;AAUA,WAAS,iCAAiC,OAiBvC;AAED,UAAM,KAAK,OAAO,MAAM,MAAM,CAAC;AAC/B,UAAM,SAAS,KAAK,UAAU,EAAE;AAEhC,UAAM,CAAC,WAAW,IAAI,MAAM;AAAA,MAC1B,MACG,MAAM,eAAe;AAAA;AAAA,QAEpB,WAAW,CAAC,QAAa;AAAA,QACzB,aAAa,CAAC,QAAa;AAAA,MAC7B;AAAA,IACJ;AAGA,UAAM,CAAC,MAAM,IAAI,MAAM,SAAmB,MAAM;AAC9C,UAAI,OAAO,WAAW,aAAa;AACjC,eAAO;AAAA,UACL,OAAO;AAAA,UAEP;AAAA,QACF;AAAA,MACF;AACA,aAAO,CAAC;AAAA,IACV,CAAC;AACD,UAAM,QAAQ,MAAM,OAAO,CAAC;AAC5B,iDAAsB,MAAM;AA5GhC;AA8GM,aAAO,KAAK,KAAI,WAAM,YAAN,mCAAqB,CAAC,CAAE;AAExC,UAAI,CAAC,OAAO,QAAQ;AAClB,eAAO;AAAA,MACT;AAEA,YAAM,sBAAsB,OACzB,IAAI,CAAC,UAAU,YAAY,UAAU,KAAK,CAAC,EAC3C,IAAI,CAAC,UAAU,KAAK,UAAU,KAAK,CAAC,EACpC,KAAK,GAAG;AAGX,aAAO,SAAS;AAEhB,YAAM,OAAiB;AAAA,QACrB,UAAU,MAAM,cAAc,MAAM;AAAA,QACpC,UAAU,MAAM,UAAU,mBAAmB;AAAA,MAC/C;AACA,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,MAAM;AAAA,UACX,yBAAyB;AAAA,YACvB,QAAQ,KAAK,KAAK,EAAE;AAAA,UACtB;AAAA;AAAA,MACF;AAAA,IAEJ,CAAC;AAID,UAAM,eAAe,MAAM,OAAO,MAAM,SAAS;AACjD,UAAM,UAAU,MAAM;AACpB,mBAAa,UAAU,MAAM;AAAA,IAC/B,CAAC;AAED,UAAM,UAAU,MAAM;AAEpB,YAAM,YAAY,IAAI,sBAA4C;AAChE,cAAM,UAAU,kBAAkB;AAAA,UAAI,CAAC,eACrC,YAAY,YAAY,UAAU;AAAA,QACpC;AACA,qBAAa,QAAQ,OAAO;AAAA,MAC9B;AAEA,YAAM,MAAM;AAEZ,YAAM,YAAuC,IAAI,EAAE,KAAK,CAAC;AAEzD,gBAAU,GAAG,SAAS;AAGtB,UAAI,EAAE,IAAI;AAAA,QACR,MAAM;AAAA,MACR;AAEA,aAAO,MAAM;AAEX,YAAI,EAAE,IAAI,CAAC;AAAA,MACb;AAAA,IACF,GAAG,CAAC,IAAI,WAAW,CAAC;AAGpB,WACE,oCAAC,QAAQ,UAAR,EAAiB,OAAO,EAAE,QAAQ,GAAG,KACnC,MAAM,QACT;AAAA,EAEJ;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,IACV;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,58 @@
1
+ import * as React from 'react';
2
+
3
+ interface DataTransformer {
4
+ serialize(object: any): any;
5
+ deserialize(object: any): any;
6
+ }
7
+ interface HydrationStreamContext<TShape> {
8
+ id: string;
9
+ stream: {
10
+ /**
11
+ * **Server method**
12
+ * Push a new entry to the stream
13
+ * Will be ignored on the client
14
+ */
15
+ push: (...shape: TShape[]) => void;
16
+ };
17
+ }
18
+ interface HydrationStreamProviderProps<TShape> {
19
+ children: React.ReactNode;
20
+ /**
21
+ * Optional transformer to serialize/deserialize the data
22
+ * Example devalue, superjson et al
23
+ */
24
+ transformer?: DataTransformer;
25
+ /**
26
+ * **Client method**
27
+ * Called in the browser when new entries are received
28
+ */
29
+ onEntries: (entries: TShape[]) => void;
30
+ /**
31
+ * **Server method**
32
+ * onFlush is called on the server when the cache is flushed
33
+ */
34
+ onFlush?: () => TShape[];
35
+ }
36
+ declare function createHydrationStreamProvider<TShape>(): {
37
+ Provider: (props: {
38
+ children: React.ReactNode;
39
+ /**
40
+ * Optional transformer to serialize/deserialize the data
41
+ * Example devalue, superjson et al
42
+ */
43
+ transformer?: DataTransformer | undefined;
44
+ /**
45
+ * **Client method**
46
+ * Called in the browser when new entries are received
47
+ */
48
+ onEntries: (entries: TShape[]) => void;
49
+ /**
50
+ * **Server method**
51
+ * onFlush is called on the server when the cache is flushed
52
+ */
53
+ onFlush?: (() => TShape[]) | undefined;
54
+ }) => React.JSX.Element;
55
+ context: React.Context<HydrationStreamContext<TShape>>;
56
+ };
57
+
58
+ export { HydrationStreamProviderProps, createHydrationStreamProvider };
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+
2
3
  interface DataTransformer {
3
4
  serialize(object: any): any;
4
5
  deserialize(object: any): any;
@@ -14,7 +15,7 @@ interface HydrationStreamContext<TShape> {
14
15
  push: (...shape: TShape[]) => void;
15
16
  };
16
17
  }
17
- export interface HydrationStreamProviderProps<TShape> {
18
+ interface HydrationStreamProviderProps<TShape> {
18
19
  children: React.ReactNode;
19
20
  /**
20
21
  * Optional transformer to serialize/deserialize the data
@@ -32,7 +33,7 @@ export interface HydrationStreamProviderProps<TShape> {
32
33
  */
33
34
  onFlush?: () => TShape[];
34
35
  }
35
- export declare function createHydrationStreamProvider<TShape>(): {
36
+ declare function createHydrationStreamProvider<TShape>(): {
36
37
  Provider: (props: {
37
38
  children: React.ReactNode;
38
39
  /**
@@ -53,5 +54,5 @@ export declare function createHydrationStreamProvider<TShape>(): {
53
54
  }) => React.JSX.Element;
54
55
  context: React.Context<HydrationStreamContext<TShape>>;
55
56
  };
56
- export {};
57
- //# sourceMappingURL=HydrationStreamProvider.d.ts.map
57
+
58
+ export { HydrationStreamProviderProps, createHydrationStreamProvider };
@@ -0,0 +1,82 @@
1
+ "use client";
2
+ import { useServerInsertedHTML } from "next/navigation";
3
+ import * as React from "react";
4
+ const serializedSymbol = Symbol("serialized");
5
+ function createHydrationStreamProvider() {
6
+ const context = React.createContext(
7
+ null
8
+ );
9
+ function UseClientHydrationStreamProvider(props) {
10
+ const id = `__RQ${React.useId()}`;
11
+ const idJSON = JSON.stringify(id);
12
+ const [transformer] = React.useState(
13
+ () => props.transformer ?? {
14
+ // noop
15
+ serialize: (obj) => obj,
16
+ deserialize: (obj) => obj
17
+ }
18
+ );
19
+ const [stream] = React.useState(() => {
20
+ if (typeof window !== "undefined") {
21
+ return {
22
+ push() {
23
+ }
24
+ };
25
+ }
26
+ return [];
27
+ });
28
+ const count = React.useRef(0);
29
+ useServerInsertedHTML(() => {
30
+ var _a;
31
+ stream.push(...((_a = props.onFlush) == null ? void 0 : _a.call(props)) ?? []);
32
+ if (!stream.length) {
33
+ return null;
34
+ }
35
+ const serializedCacheArgs = stream.map((entry) => transformer.serialize(entry)).map((entry) => JSON.stringify(entry)).join(",");
36
+ stream.length = 0;
37
+ const html = [
38
+ `window[${idJSON}] = window[${idJSON}] || [];`,
39
+ `window[${idJSON}].push(${serializedCacheArgs});`
40
+ ];
41
+ return /* @__PURE__ */ React.createElement(
42
+ "script",
43
+ {
44
+ key: count.current++,
45
+ dangerouslySetInnerHTML: {
46
+ __html: html.join("")
47
+ }
48
+ }
49
+ );
50
+ });
51
+ const onEntriesRef = React.useRef(props.onEntries);
52
+ React.useEffect(() => {
53
+ onEntriesRef.current = props.onEntries;
54
+ });
55
+ React.useEffect(() => {
56
+ const onEntries = (...serializedEntries) => {
57
+ const entries = serializedEntries.map(
58
+ (serialized) => transformer.deserialize(serialized)
59
+ );
60
+ onEntriesRef.current(entries);
61
+ };
62
+ const win = window;
63
+ const winStream = win[id] ?? [];
64
+ onEntries(...winStream);
65
+ win[id] = {
66
+ push: onEntries
67
+ };
68
+ return () => {
69
+ win[id] = [];
70
+ };
71
+ }, [id, transformer]);
72
+ return /* @__PURE__ */ React.createElement(context.Provider, { value: { stream, id } }, props.children);
73
+ }
74
+ return {
75
+ Provider: UseClientHydrationStreamProvider,
76
+ context
77
+ };
78
+ }
79
+ export {
80
+ createHydrationStreamProvider
81
+ };
82
+ //# sourceMappingURL=HydrationStreamProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/HydrationStreamProvider.tsx"],"sourcesContent":["'use client'\n\nimport { useServerInsertedHTML } from 'next/navigation'\nimport * as React from 'react'\n\nconst serializedSymbol = Symbol('serialized')\n\ninterface DataTransformer {\n serialize(object: any): any\n deserialize(object: any): any\n}\n\ntype Serialized<TData> = unknown & {\n [serializedSymbol]: TData\n}\n\ninterface TypedDataTransformer<TData> {\n serialize: (obj: TData) => Serialized<TData>\n deserialize: (obj: Serialized<TData>) => TData\n}\n\ninterface HydrationStreamContext<TShape> {\n id: string\n stream: {\n /**\n * **Server method**\n * Push a new entry to the stream\n * Will be ignored on the client\n */\n push: (...shape: TShape[]) => void\n }\n}\n\nexport interface HydrationStreamProviderProps<TShape> {\n children: React.ReactNode\n /**\n * Optional transformer to serialize/deserialize the data\n * Example devalue, superjson et al\n */\n transformer?: DataTransformer\n /**\n * **Client method**\n * Called in the browser when new entries are received\n */\n onEntries: (entries: TShape[]) => void\n /**\n * **Server method**\n * onFlush is called on the server when the cache is flushed\n */\n onFlush?: () => TShape[]\n}\n\nexport function createHydrationStreamProvider<TShape>() {\n const context = React.createContext<HydrationStreamContext<TShape>>(\n null as any,\n )\n /**\n\n * 1. (Happens on server): `useServerInsertedHTML()` is called **on the server** whenever a `Suspense`-boundary completes\n * - This means that we might have some new entries in the cache that needs to be flushed\n * - We pass these to the client by inserting a `<script>`-tag where we do `window[id].push(serializedVersionOfCache)`\n * 2. (Happens in browser) In `useEffect()`:\n * - We check if `window[id]` is set to an array and call `push()` on all the entries which will call `onEntries()` with the new entries\n * - We replace `window[id]` with a `push()`-method that will be called whenever new entries are received\n **/\n function UseClientHydrationStreamProvider(props: {\n children: React.ReactNode\n /**\n * Optional transformer to serialize/deserialize the data\n * Example devalue, superjson et al\n */\n transformer?: DataTransformer\n /**\n * **Client method**\n * Called in the browser when new entries are received\n */\n onEntries: (entries: TShape[]) => void\n /**\n * **Server method**\n * onFlush is called on the server when the cache is flushed\n */\n onFlush?: () => TShape[]\n }) {\n // unique id for the cache provider\n const id = `__RQ${React.useId()}`\n const idJSON = JSON.stringify(id)\n\n const [transformer] = React.useState(\n () =>\n (props.transformer ?? {\n // noop\n serialize: (obj: any) => obj,\n deserialize: (obj: any) => obj,\n }) as unknown as TypedDataTransformer<TShape>,\n )\n\n // <server stuff>\n const [stream] = React.useState<TShape[]>(() => {\n if (typeof window !== 'undefined') {\n return {\n push() {\n // no-op on the client\n },\n } as unknown as TShape[]\n }\n return []\n })\n const count = React.useRef(0)\n useServerInsertedHTML(() => {\n // This only happens on the server\n stream.push(...(props.onFlush?.() ?? []))\n\n if (!stream.length) {\n return null\n }\n // console.log(`pushing ${stream.length} entries`)\n const serializedCacheArgs = stream\n .map((entry) => transformer.serialize(entry))\n .map((entry) => JSON.stringify(entry))\n .join(',')\n\n // Flush stream\n stream.length = 0\n\n const html: string[] = [\n `window[${idJSON}] = window[${idJSON}] || [];`,\n `window[${idJSON}].push(${serializedCacheArgs});`,\n ]\n return (\n <script\n key={count.current++}\n dangerouslySetInnerHTML={{\n __html: html.join(''),\n }}\n />\n )\n })\n // </server stuff>\n\n // <client stuff>\n const onEntriesRef = React.useRef(props.onEntries)\n React.useEffect(() => {\n onEntriesRef.current = props.onEntries\n })\n\n React.useEffect(() => {\n // Client: consume cache:\n const onEntries = (...serializedEntries: Serialized<TShape>[]) => {\n const entries = serializedEntries.map((serialized) =>\n transformer.deserialize(serialized),\n )\n onEntriesRef.current(entries)\n }\n\n const win = window as any\n // Register cache consumer\n const winStream: Array<Serialized<TShape>> = win[id] ?? []\n\n onEntries(...winStream)\n\n // Register our own consumer\n win[id] = {\n push: onEntries,\n }\n\n return () => {\n // Cleanup after unmount\n win[id] = []\n }\n }, [id, transformer])\n // </client stuff>\n\n return (\n <context.Provider value={{ stream, id }}>\n {props.children}\n </context.Provider>\n )\n }\n\n return {\n Provider: UseClientHydrationStreamProvider,\n context,\n }\n}\n"],"mappings":";AAEA,SAAS,6BAA6B;AACtC,YAAY,WAAW;AAEvB,MAAM,mBAAmB,OAAO,YAAY;AA+CrC,SAAS,gCAAwC;AACtD,QAAM,UAAU,MAAM;AAAA,IACpB;AAAA,EACF;AAUA,WAAS,iCAAiC,OAiBvC;AAED,UAAM,KAAK,OAAO,MAAM,MAAM,CAAC;AAC/B,UAAM,SAAS,KAAK,UAAU,EAAE;AAEhC,UAAM,CAAC,WAAW,IAAI,MAAM;AAAA,MAC1B,MACG,MAAM,eAAe;AAAA;AAAA,QAEpB,WAAW,CAAC,QAAa;AAAA,QACzB,aAAa,CAAC,QAAa;AAAA,MAC7B;AAAA,IACJ;AAGA,UAAM,CAAC,MAAM,IAAI,MAAM,SAAmB,MAAM;AAC9C,UAAI,OAAO,WAAW,aAAa;AACjC,eAAO;AAAA,UACL,OAAO;AAAA,UAEP;AAAA,QACF;AAAA,MACF;AACA,aAAO,CAAC;AAAA,IACV,CAAC;AACD,UAAM,QAAQ,MAAM,OAAO,CAAC;AAC5B,0BAAsB,MAAM;AA5GhC;AA8GM,aAAO,KAAK,KAAI,WAAM,YAAN,mCAAqB,CAAC,CAAE;AAExC,UAAI,CAAC,OAAO,QAAQ;AAClB,eAAO;AAAA,MACT;AAEA,YAAM,sBAAsB,OACzB,IAAI,CAAC,UAAU,YAAY,UAAU,KAAK,CAAC,EAC3C,IAAI,CAAC,UAAU,KAAK,UAAU,KAAK,CAAC,EACpC,KAAK,GAAG;AAGX,aAAO,SAAS;AAEhB,YAAM,OAAiB;AAAA,QACrB,UAAU,MAAM,cAAc,MAAM;AAAA,QACpC,UAAU,MAAM,UAAU,mBAAmB;AAAA,MAC/C;AACA,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,MAAM;AAAA,UACX,yBAAyB;AAAA,YACvB,QAAQ,KAAK,KAAK,EAAE;AAAA,UACtB;AAAA;AAAA,MACF;AAAA,IAEJ,CAAC;AAID,UAAM,eAAe,MAAM,OAAO,MAAM,SAAS;AACjD,UAAM,UAAU,MAAM;AACpB,mBAAa,UAAU,MAAM;AAAA,IAC/B,CAAC;AAED,UAAM,UAAU,MAAM;AAEpB,YAAM,YAAY,IAAI,sBAA4C;AAChE,cAAM,UAAU,kBAAkB;AAAA,UAAI,CAAC,eACrC,YAAY,YAAY,UAAU;AAAA,QACpC;AACA,qBAAa,QAAQ,OAAO;AAAA,MAC9B;AAEA,YAAM,MAAM;AAEZ,YAAM,YAAuC,IAAI,EAAE,KAAK,CAAC;AAEzD,gBAAU,GAAG,SAAS;AAGtB,UAAI,EAAE,IAAI;AAAA,QACR,MAAM;AAAA,MACR;AAEA,aAAO,MAAM;AAEX,YAAI,EAAE,IAAI,CAAC;AAAA,MACb;AAAA,IACF,GAAG,CAAC,IAAI,WAAW,CAAC;AAGpB,WACE,oCAAC,QAAQ,UAAR,EAAiB,OAAO,EAAE,QAAQ,GAAG,KACnC,MAAM,QACT;AAAA,EAEJ;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,IACV;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var ReactQueryStreamedHydration_exports = {};
31
+ __export(ReactQueryStreamedHydration_exports, {
32
+ ReactQueryStreamedHydration: () => ReactQueryStreamedHydration
33
+ });
34
+ module.exports = __toCommonJS(ReactQueryStreamedHydration_exports);
35
+ var import_react_query = require("@tanstack/react-query");
36
+ var React = __toESM(require("react"), 1);
37
+ var import_HydrationStreamProvider = require("./HydrationStreamProvider");
38
+ const stream = (0, import_HydrationStreamProvider.createHydrationStreamProvider)();
39
+ function ReactQueryStreamedHydration(props) {
40
+ const queryClient = (0, import_react_query.useQueryClient)(props.queryClient);
41
+ const [trackedKeys] = React.useState(() => /* @__PURE__ */ new Set());
42
+ if (typeof window === "undefined") {
43
+ queryClient.getQueryCache().subscribe((event) => {
44
+ switch (event.type) {
45
+ case "added":
46
+ case "updated":
47
+ trackedKeys.add(event.query.queryHash);
48
+ }
49
+ });
50
+ }
51
+ return /* @__PURE__ */ React.createElement(
52
+ stream.Provider,
53
+ {
54
+ onFlush: () => {
55
+ var _a, _b, _c;
56
+ const shouldDehydrate = ((_b = (_a = props.options) == null ? void 0 : _a.dehydrate) == null ? void 0 : _b.shouldDehydrateQuery) ?? import_react_query.defaultShouldDehydrateQuery;
57
+ const dehydratedState = (0, import_react_query.dehydrate)(queryClient, {
58
+ ...(_c = props.options) == null ? void 0 : _c.dehydrate,
59
+ shouldDehydrateQuery(query) {
60
+ return trackedKeys.has(query.queryHash) && shouldDehydrate(query);
61
+ }
62
+ });
63
+ trackedKeys.clear();
64
+ if (!dehydratedState.queries.length) {
65
+ return [];
66
+ }
67
+ return [dehydratedState];
68
+ },
69
+ onEntries: (entries) => {
70
+ var _a;
71
+ for (const hydratedState of entries) {
72
+ (0, import_react_query.hydrate)(queryClient, hydratedState, (_a = props.options) == null ? void 0 : _a.hydrate);
73
+ }
74
+ },
75
+ transformer: props.transformer
76
+ },
77
+ props.children
78
+ );
79
+ }
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ ReactQueryStreamedHydration
83
+ });
84
+ //# sourceMappingURL=ReactQueryStreamedHydration.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ReactQueryStreamedHydration.tsx"],"sourcesContent":["'use client'\n\nimport {\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate,\n useQueryClient,\n} from '@tanstack/react-query'\nimport * as React from 'react'\nimport { createHydrationStreamProvider } from './HydrationStreamProvider'\nimport type { HydrationStreamProviderProps } from './HydrationStreamProvider'\nimport type {\n DehydrateOptions,\n DehydratedState,\n HydrateOptions,\n QueryClient,\n} from '@tanstack/react-query'\n\nconst stream = createHydrationStreamProvider<DehydratedState>()\n\n/**\n * This component is responsible for:\n * - hydrating the query client on the server\n * - dehydrating the query client on the server\n */\nexport function ReactQueryStreamedHydration(props: {\n children: React.ReactNode\n queryClient?: QueryClient\n options?: {\n hydrate?: HydrateOptions\n dehydrate?: DehydrateOptions\n }\n transformer?: HydrationStreamProviderProps<DehydratedState>['transformer']\n}) {\n const queryClient = useQueryClient(props.queryClient)\n\n /**\n * We need to track which queries were added/updated during the render\n */\n const [trackedKeys] = React.useState(() => new Set<string>())\n\n // <server only>\n if (typeof window === 'undefined') {\n // Do we need to care about unsubscribing? I don't think so to be honest\n queryClient.getQueryCache().subscribe((event) => {\n switch (event.type) {\n case 'added':\n case 'updated':\n // console.log('tracking', event.query.queryHash, 'b/c of a', event.type)\n trackedKeys.add(event.query.queryHash)\n }\n })\n }\n // </server only>\n\n return (\n <stream.Provider\n // Happens on server:\n onFlush={() => {\n /**\n * Dehydrated state of the client where we only include the queries that were added/updated since the last flush\n */\n const shouldDehydrate =\n props.options?.dehydrate?.shouldDehydrateQuery ??\n defaultShouldDehydrateQuery\n\n const dehydratedState = dehydrate(queryClient, {\n ...props.options?.dehydrate,\n shouldDehydrateQuery(query) {\n return trackedKeys.has(query.queryHash) && shouldDehydrate(query)\n },\n })\n trackedKeys.clear()\n\n if (!dehydratedState.queries.length) {\n return []\n }\n\n return [dehydratedState]\n }}\n // Happens in browser:\n onEntries={(entries) => {\n for (const hydratedState of entries) {\n hydrate(queryClient, hydratedState, props.options?.hydrate)\n }\n }}\n // Handle BigInts etc using superjson\n transformer={props.transformer}\n >\n {props.children}\n </stream.Provider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,yBAKO;AACP,YAAuB;AACvB,qCAA8C;AAS9C,MAAM,aAAS,8DAA+C;AAOvD,SAAS,4BAA4B,OAQzC;AACD,QAAM,kBAAc,mCAAe,MAAM,WAAW;AAKpD,QAAM,CAAC,WAAW,IAAI,MAAM,SAAS,MAAM,oBAAI,IAAY,CAAC;AAG5D,MAAI,OAAO,WAAW,aAAa;AAEjC,gBAAY,cAAc,EAAE,UAAU,CAAC,UAAU;AAC/C,cAAQ,MAAM,MAAM;AAAA,QAClB,KAAK;AAAA,QACL,KAAK;AAEH,sBAAY,IAAI,MAAM,MAAM,SAAS;AAAA,MACzC;AAAA,IACF,CAAC;AAAA,EACH;AAGA,SACE;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MAEC,SAAS,MAAM;AA1DrB;AA8DQ,cAAM,oBACJ,iBAAM,YAAN,mBAAe,cAAf,mBAA0B,yBAC1B;AAEF,cAAM,sBAAkB,8BAAU,aAAa;AAAA,UAC7C,IAAG,WAAM,YAAN,mBAAe;AAAA,UAClB,qBAAqB,OAAO;AAC1B,mBAAO,YAAY,IAAI,MAAM,SAAS,KAAK,gBAAgB,KAAK;AAAA,UAClE;AAAA,QACF,CAAC;AACD,oBAAY,MAAM;AAElB,YAAI,CAAC,gBAAgB,QAAQ,QAAQ;AACnC,iBAAO,CAAC;AAAA,QACV;AAEA,eAAO,CAAC,eAAe;AAAA,MACzB;AAAA,MAEA,WAAW,CAAC,YAAY;AAjF9B;AAkFQ,mBAAW,iBAAiB,SAAS;AACnC,0CAAQ,aAAa,gBAAe,WAAM,YAAN,mBAAe,OAAO;AAAA,QAC5D;AAAA,MACF;AAAA,MAEA,aAAa,MAAM;AAAA;AAAA,IAElB,MAAM;AAAA,EACT;AAEJ;","names":[]}
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { HydrationStreamProviderProps } from './HydrationStreamProvider.cjs';
3
+ import { QueryClient, HydrateOptions, DehydrateOptions, DehydratedState } from '@tanstack/react-query';
4
+
5
+ /**
6
+ * This component is responsible for:
7
+ * - hydrating the query client on the server
8
+ * - dehydrating the query client on the server
9
+ */
10
+ declare function ReactQueryStreamedHydration(props: {
11
+ children: React.ReactNode;
12
+ queryClient?: QueryClient;
13
+ options?: {
14
+ hydrate?: HydrateOptions;
15
+ dehydrate?: DehydrateOptions;
16
+ };
17
+ transformer?: HydrationStreamProviderProps<DehydratedState>['transformer'];
18
+ }): React.JSX.Element;
19
+
20
+ export { ReactQueryStreamedHydration };
@@ -1,12 +1,13 @@
1
1
  import * as React from 'react';
2
- import type { HydrationStreamProviderProps } from './HydrationStreamProvider';
3
- import type { DehydrateOptions, DehydratedState, HydrateOptions, QueryClient } from '@tanstack/react-query';
2
+ import { HydrationStreamProviderProps } from './HydrationStreamProvider.js';
3
+ import { QueryClient, HydrateOptions, DehydrateOptions, DehydratedState } from '@tanstack/react-query';
4
+
4
5
  /**
5
6
  * This component is responsible for:
6
7
  * - hydrating the query client on the server
7
8
  * - dehydrating the query client on the server
8
9
  */
9
- export declare function ReactQueryStreamedHydration(props: {
10
+ declare function ReactQueryStreamedHydration(props: {
10
11
  children: React.ReactNode;
11
12
  queryClient?: QueryClient;
12
13
  options?: {
@@ -15,4 +16,5 @@ export declare function ReactQueryStreamedHydration(props: {
15
16
  };
16
17
  transformer?: HydrationStreamProviderProps<DehydratedState>['transformer'];
17
18
  }): React.JSX.Element;
18
- //# sourceMappingURL=ReactQueryStreamedHydration.d.ts.map
19
+
20
+ export { ReactQueryStreamedHydration };
@@ -0,0 +1,55 @@
1
+ "use client";
2
+ import {
3
+ defaultShouldDehydrateQuery,
4
+ dehydrate,
5
+ hydrate,
6
+ useQueryClient
7
+ } from "@tanstack/react-query";
8
+ import * as React from "react";
9
+ import { createHydrationStreamProvider } from "./HydrationStreamProvider";
10
+ const stream = createHydrationStreamProvider();
11
+ function ReactQueryStreamedHydration(props) {
12
+ const queryClient = useQueryClient(props.queryClient);
13
+ const [trackedKeys] = React.useState(() => /* @__PURE__ */ new Set());
14
+ if (typeof window === "undefined") {
15
+ queryClient.getQueryCache().subscribe((event) => {
16
+ switch (event.type) {
17
+ case "added":
18
+ case "updated":
19
+ trackedKeys.add(event.query.queryHash);
20
+ }
21
+ });
22
+ }
23
+ return /* @__PURE__ */ React.createElement(
24
+ stream.Provider,
25
+ {
26
+ onFlush: () => {
27
+ var _a, _b, _c;
28
+ const shouldDehydrate = ((_b = (_a = props.options) == null ? void 0 : _a.dehydrate) == null ? void 0 : _b.shouldDehydrateQuery) ?? defaultShouldDehydrateQuery;
29
+ const dehydratedState = dehydrate(queryClient, {
30
+ ...(_c = props.options) == null ? void 0 : _c.dehydrate,
31
+ shouldDehydrateQuery(query) {
32
+ return trackedKeys.has(query.queryHash) && shouldDehydrate(query);
33
+ }
34
+ });
35
+ trackedKeys.clear();
36
+ if (!dehydratedState.queries.length) {
37
+ return [];
38
+ }
39
+ return [dehydratedState];
40
+ },
41
+ onEntries: (entries) => {
42
+ var _a;
43
+ for (const hydratedState of entries) {
44
+ hydrate(queryClient, hydratedState, (_a = props.options) == null ? void 0 : _a.hydrate);
45
+ }
46
+ },
47
+ transformer: props.transformer
48
+ },
49
+ props.children
50
+ );
51
+ }
52
+ export {
53
+ ReactQueryStreamedHydration
54
+ };
55
+ //# sourceMappingURL=ReactQueryStreamedHydration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ReactQueryStreamedHydration.tsx"],"sourcesContent":["'use client'\n\nimport {\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate,\n useQueryClient,\n} from '@tanstack/react-query'\nimport * as React from 'react'\nimport { createHydrationStreamProvider } from './HydrationStreamProvider'\nimport type { HydrationStreamProviderProps } from './HydrationStreamProvider'\nimport type {\n DehydrateOptions,\n DehydratedState,\n HydrateOptions,\n QueryClient,\n} from '@tanstack/react-query'\n\nconst stream = createHydrationStreamProvider<DehydratedState>()\n\n/**\n * This component is responsible for:\n * - hydrating the query client on the server\n * - dehydrating the query client on the server\n */\nexport function ReactQueryStreamedHydration(props: {\n children: React.ReactNode\n queryClient?: QueryClient\n options?: {\n hydrate?: HydrateOptions\n dehydrate?: DehydrateOptions\n }\n transformer?: HydrationStreamProviderProps<DehydratedState>['transformer']\n}) {\n const queryClient = useQueryClient(props.queryClient)\n\n /**\n * We need to track which queries were added/updated during the render\n */\n const [trackedKeys] = React.useState(() => new Set<string>())\n\n // <server only>\n if (typeof window === 'undefined') {\n // Do we need to care about unsubscribing? I don't think so to be honest\n queryClient.getQueryCache().subscribe((event) => {\n switch (event.type) {\n case 'added':\n case 'updated':\n // console.log('tracking', event.query.queryHash, 'b/c of a', event.type)\n trackedKeys.add(event.query.queryHash)\n }\n })\n }\n // </server only>\n\n return (\n <stream.Provider\n // Happens on server:\n onFlush={() => {\n /**\n * Dehydrated state of the client where we only include the queries that were added/updated since the last flush\n */\n const shouldDehydrate =\n props.options?.dehydrate?.shouldDehydrateQuery ??\n defaultShouldDehydrateQuery\n\n const dehydratedState = dehydrate(queryClient, {\n ...props.options?.dehydrate,\n shouldDehydrateQuery(query) {\n return trackedKeys.has(query.queryHash) && shouldDehydrate(query)\n },\n })\n trackedKeys.clear()\n\n if (!dehydratedState.queries.length) {\n return []\n }\n\n return [dehydratedState]\n }}\n // Happens in browser:\n onEntries={(entries) => {\n for (const hydratedState of entries) {\n hydrate(queryClient, hydratedState, props.options?.hydrate)\n }\n }}\n // Handle BigInts etc using superjson\n transformer={props.transformer}\n >\n {props.children}\n </stream.Provider>\n )\n}\n"],"mappings":";AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,YAAY,WAAW;AACvB,SAAS,qCAAqC;AAS9C,MAAM,SAAS,8BAA+C;AAOvD,SAAS,4BAA4B,OAQzC;AACD,QAAM,cAAc,eAAe,MAAM,WAAW;AAKpD,QAAM,CAAC,WAAW,IAAI,MAAM,SAAS,MAAM,oBAAI,IAAY,CAAC;AAG5D,MAAI,OAAO,WAAW,aAAa;AAEjC,gBAAY,cAAc,EAAE,UAAU,CAAC,UAAU;AAC/C,cAAQ,MAAM,MAAM;AAAA,QAClB,KAAK;AAAA,QACL,KAAK;AAEH,sBAAY,IAAI,MAAM,MAAM,SAAS;AAAA,MACzC;AAAA,IACF,CAAC;AAAA,EACH;AAGA,SACE;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MAEC,SAAS,MAAM;AA1DrB;AA8DQ,cAAM,oBACJ,iBAAM,YAAN,mBAAe,cAAf,mBAA0B,yBAC1B;AAEF,cAAM,kBAAkB,UAAU,aAAa;AAAA,UAC7C,IAAG,WAAM,YAAN,mBAAe;AAAA,UAClB,qBAAqB,OAAO;AAC1B,mBAAO,YAAY,IAAI,MAAM,SAAS,KAAK,gBAAgB,KAAK;AAAA,UAClE;AAAA,QACF,CAAC;AACD,oBAAY,MAAM;AAElB,YAAI,CAAC,gBAAgB,QAAQ,QAAQ;AACnC,iBAAO,CAAC;AAAA,QACV;AAEA,eAAO,CAAC,eAAe;AAAA,MACzB;AAAA,MAEA,WAAW,CAAC,YAAY;AAjF9B;AAkFQ,mBAAW,iBAAiB,SAAS;AACnC,kBAAQ,aAAa,gBAAe,WAAM,YAAN,mBAAe,OAAO;AAAA,QAC5D;AAAA,MACF;AAAA,MAEA,aAAa,MAAM;AAAA;AAAA,IAElB,MAAM;AAAA,EACT;AAEJ;","names":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var src_exports = {};
20
+ __export(src_exports, {
21
+ ReactQueryStreamedHydration: () => import_ReactQueryStreamedHydration.ReactQueryStreamedHydration
22
+ });
23
+ module.exports = __toCommonJS(src_exports);
24
+ var import_ReactQueryStreamedHydration = require("./ReactQueryStreamedHydration");
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ ReactQueryStreamedHydration
28
+ });
29
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export { ReactQueryStreamedHydration } from './ReactQueryStreamedHydration'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAA4C;","names":[]}
@@ -0,0 +1,4 @@
1
+ export { ReactQueryStreamedHydration } from './ReactQueryStreamedHydration.cjs';
2
+ import 'react';
3
+ import './HydrationStreamProvider.cjs';
4
+ import '@tanstack/react-query';
@@ -0,0 +1,4 @@
1
+ export { ReactQueryStreamedHydration } from './ReactQueryStreamedHydration.js';
2
+ import 'react';
3
+ import './HydrationStreamProvider.js';
4
+ import '@tanstack/react-query';
@@ -0,0 +1,5 @@
1
+ import { ReactQueryStreamedHydration } from "./ReactQueryStreamedHydration";
2
+ export {
3
+ ReactQueryStreamedHydration
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export { ReactQueryStreamedHydration } from './ReactQueryStreamedHydration'\n"],"mappings":"AAAA,SAAS,mCAAmC;","names":[]}