@spoosh/plugin-refetch 0.1.6 → 0.1.8

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.
package/dist/index.js CHANGED
@@ -29,7 +29,7 @@ function refetchPlugin(config = {}) {
29
29
  const { refetchOnFocus = false, refetchOnReconnect = false } = config;
30
30
  const listenersByHook = /* @__PURE__ */ new Map();
31
31
  const isBrowser = typeof window !== "undefined";
32
- const setupFocusListener = (hookId, queryKey, eventEmitter) => {
32
+ const setupFocusListener = (instanceId, queryKey, eventEmitter) => {
33
33
  if (!isBrowser) return;
34
34
  const visibilityHandler = () => {
35
35
  if (document.visibilityState === "visible") {
@@ -47,15 +47,15 @@ function refetchPlugin(config = {}) {
47
47
  };
48
48
  document.addEventListener("visibilitychange", visibilityHandler);
49
49
  window.addEventListener("focus", focusHandler);
50
- const entry = listenersByHook.get(hookId) ?? { queryKey };
50
+ const entry = listenersByHook.get(instanceId) ?? { queryKey };
51
51
  entry.queryKey = queryKey;
52
52
  entry.focusCleanup = () => {
53
53
  document.removeEventListener("visibilitychange", visibilityHandler);
54
54
  window.removeEventListener("focus", focusHandler);
55
55
  };
56
- listenersByHook.set(hookId, entry);
56
+ listenersByHook.set(instanceId, entry);
57
57
  };
58
- const setupReconnectListener = (hookId, queryKey, eventEmitter) => {
58
+ const setupReconnectListener = (instanceId, queryKey, eventEmitter) => {
59
59
  if (!isBrowser) return;
60
60
  const handler = () => {
61
61
  eventEmitter.emit("refetch", {
@@ -64,36 +64,36 @@ function refetchPlugin(config = {}) {
64
64
  });
65
65
  };
66
66
  window.addEventListener("online", handler);
67
- const entry = listenersByHook.get(hookId) ?? { queryKey };
67
+ const entry = listenersByHook.get(instanceId) ?? { queryKey };
68
68
  entry.queryKey = queryKey;
69
69
  entry.reconnectCleanup = () => {
70
70
  window.removeEventListener("online", handler);
71
71
  };
72
- listenersByHook.set(hookId, entry);
72
+ listenersByHook.set(instanceId, entry);
73
73
  };
74
- const cleanupHook = (hookId) => {
75
- const entry = listenersByHook.get(hookId);
74
+ const cleanupHook = (instanceId) => {
75
+ const entry = listenersByHook.get(instanceId);
76
76
  if (entry) {
77
77
  entry.focusCleanup?.();
78
78
  entry.reconnectCleanup?.();
79
- listenersByHook.delete(hookId);
79
+ listenersByHook.delete(instanceId);
80
80
  }
81
81
  };
82
- const hasFocusListener = (hookId) => {
83
- return listenersByHook.get(hookId)?.focusCleanup !== void 0;
82
+ const hasFocusListener = (instanceId) => {
83
+ return listenersByHook.get(instanceId)?.focusCleanup !== void 0;
84
84
  };
85
- const hasReconnectListener = (hookId) => {
86
- return listenersByHook.get(hookId)?.reconnectCleanup !== void 0;
85
+ const hasReconnectListener = (instanceId) => {
86
+ return listenersByHook.get(instanceId)?.reconnectCleanup !== void 0;
87
87
  };
88
- const removeFocusListener = (hookId) => {
89
- const entry = listenersByHook.get(hookId);
88
+ const removeFocusListener = (instanceId) => {
89
+ const entry = listenersByHook.get(instanceId);
90
90
  if (entry?.focusCleanup) {
91
91
  entry.focusCleanup();
92
92
  entry.focusCleanup = void 0;
93
93
  }
94
94
  };
95
- const removeReconnectListener = (hookId) => {
96
- const entry = listenersByHook.get(hookId);
95
+ const removeReconnectListener = (instanceId) => {
96
+ const entry = listenersByHook.get(instanceId);
97
97
  if (entry?.reconnectCleanup) {
98
98
  entry.reconnectCleanup();
99
99
  entry.reconnectCleanup = void 0;
@@ -104,43 +104,43 @@ function refetchPlugin(config = {}) {
104
104
  operations: ["read", "infiniteRead"],
105
105
  lifecycle: {
106
106
  onMount(context) {
107
- const { queryKey, eventEmitter, hookId } = context;
108
- if (!hookId) return;
107
+ const { queryKey, eventEmitter, instanceId } = context;
108
+ if (!instanceId) return;
109
109
  const pluginOptions = context.pluginOptions;
110
110
  const shouldRefetchOnFocus = pluginOptions?.refetchOnFocus ?? refetchOnFocus;
111
111
  const shouldRefetchOnReconnect = pluginOptions?.refetchOnReconnect ?? refetchOnReconnect;
112
112
  if (shouldRefetchOnFocus) {
113
- setupFocusListener(hookId, queryKey, eventEmitter);
113
+ setupFocusListener(instanceId, queryKey, eventEmitter);
114
114
  }
115
115
  if (shouldRefetchOnReconnect) {
116
- setupReconnectListener(hookId, queryKey, eventEmitter);
116
+ setupReconnectListener(instanceId, queryKey, eventEmitter);
117
117
  }
118
118
  },
119
119
  onUpdate(context) {
120
- const { queryKey, eventEmitter, hookId } = context;
121
- if (!hookId) return;
120
+ const { queryKey, eventEmitter, instanceId } = context;
121
+ if (!instanceId) return;
122
122
  const pluginOptions = context.pluginOptions;
123
123
  const shouldRefetchOnFocus = pluginOptions?.refetchOnFocus ?? refetchOnFocus;
124
124
  const shouldRefetchOnReconnect = pluginOptions?.refetchOnReconnect ?? refetchOnReconnect;
125
- const entry = listenersByHook.get(hookId);
125
+ const entry = listenersByHook.get(instanceId);
126
126
  const queryKeyChanged = entry && entry.queryKey !== queryKey;
127
127
  if (queryKeyChanged) {
128
- cleanupHook(hookId);
128
+ cleanupHook(instanceId);
129
129
  }
130
- if (shouldRefetchOnFocus && !hasFocusListener(hookId)) {
131
- setupFocusListener(hookId, queryKey, eventEmitter);
132
- } else if (!shouldRefetchOnFocus && hasFocusListener(hookId)) {
133
- removeFocusListener(hookId);
130
+ if (shouldRefetchOnFocus && !hasFocusListener(instanceId)) {
131
+ setupFocusListener(instanceId, queryKey, eventEmitter);
132
+ } else if (!shouldRefetchOnFocus && hasFocusListener(instanceId)) {
133
+ removeFocusListener(instanceId);
134
134
  }
135
- if (shouldRefetchOnReconnect && !hasReconnectListener(hookId)) {
136
- setupReconnectListener(hookId, queryKey, eventEmitter);
137
- } else if (!shouldRefetchOnReconnect && hasReconnectListener(hookId)) {
138
- removeReconnectListener(hookId);
135
+ if (shouldRefetchOnReconnect && !hasReconnectListener(instanceId)) {
136
+ setupReconnectListener(instanceId, queryKey, eventEmitter);
137
+ } else if (!shouldRefetchOnReconnect && hasReconnectListener(instanceId)) {
138
+ removeReconnectListener(instanceId);
139
139
  }
140
140
  },
141
141
  onUnmount(context) {
142
- if (context.hookId) {
143
- cleanupHook(context.hookId);
142
+ if (context.instanceId) {
143
+ cleanupHook(context.instanceId);
144
144
  }
145
145
  }
146
146
  }
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@ function refetchPlugin(config = {}) {
3
3
  const { refetchOnFocus = false, refetchOnReconnect = false } = config;
4
4
  const listenersByHook = /* @__PURE__ */ new Map();
5
5
  const isBrowser = typeof window !== "undefined";
6
- const setupFocusListener = (hookId, queryKey, eventEmitter) => {
6
+ const setupFocusListener = (instanceId, queryKey, eventEmitter) => {
7
7
  if (!isBrowser) return;
8
8
  const visibilityHandler = () => {
9
9
  if (document.visibilityState === "visible") {
@@ -21,15 +21,15 @@ function refetchPlugin(config = {}) {
21
21
  };
22
22
  document.addEventListener("visibilitychange", visibilityHandler);
23
23
  window.addEventListener("focus", focusHandler);
24
- const entry = listenersByHook.get(hookId) ?? { queryKey };
24
+ const entry = listenersByHook.get(instanceId) ?? { queryKey };
25
25
  entry.queryKey = queryKey;
26
26
  entry.focusCleanup = () => {
27
27
  document.removeEventListener("visibilitychange", visibilityHandler);
28
28
  window.removeEventListener("focus", focusHandler);
29
29
  };
30
- listenersByHook.set(hookId, entry);
30
+ listenersByHook.set(instanceId, entry);
31
31
  };
32
- const setupReconnectListener = (hookId, queryKey, eventEmitter) => {
32
+ const setupReconnectListener = (instanceId, queryKey, eventEmitter) => {
33
33
  if (!isBrowser) return;
34
34
  const handler = () => {
35
35
  eventEmitter.emit("refetch", {
@@ -38,36 +38,36 @@ function refetchPlugin(config = {}) {
38
38
  });
39
39
  };
40
40
  window.addEventListener("online", handler);
41
- const entry = listenersByHook.get(hookId) ?? { queryKey };
41
+ const entry = listenersByHook.get(instanceId) ?? { queryKey };
42
42
  entry.queryKey = queryKey;
43
43
  entry.reconnectCleanup = () => {
44
44
  window.removeEventListener("online", handler);
45
45
  };
46
- listenersByHook.set(hookId, entry);
46
+ listenersByHook.set(instanceId, entry);
47
47
  };
48
- const cleanupHook = (hookId) => {
49
- const entry = listenersByHook.get(hookId);
48
+ const cleanupHook = (instanceId) => {
49
+ const entry = listenersByHook.get(instanceId);
50
50
  if (entry) {
51
51
  entry.focusCleanup?.();
52
52
  entry.reconnectCleanup?.();
53
- listenersByHook.delete(hookId);
53
+ listenersByHook.delete(instanceId);
54
54
  }
55
55
  };
56
- const hasFocusListener = (hookId) => {
57
- return listenersByHook.get(hookId)?.focusCleanup !== void 0;
56
+ const hasFocusListener = (instanceId) => {
57
+ return listenersByHook.get(instanceId)?.focusCleanup !== void 0;
58
58
  };
59
- const hasReconnectListener = (hookId) => {
60
- return listenersByHook.get(hookId)?.reconnectCleanup !== void 0;
59
+ const hasReconnectListener = (instanceId) => {
60
+ return listenersByHook.get(instanceId)?.reconnectCleanup !== void 0;
61
61
  };
62
- const removeFocusListener = (hookId) => {
63
- const entry = listenersByHook.get(hookId);
62
+ const removeFocusListener = (instanceId) => {
63
+ const entry = listenersByHook.get(instanceId);
64
64
  if (entry?.focusCleanup) {
65
65
  entry.focusCleanup();
66
66
  entry.focusCleanup = void 0;
67
67
  }
68
68
  };
69
- const removeReconnectListener = (hookId) => {
70
- const entry = listenersByHook.get(hookId);
69
+ const removeReconnectListener = (instanceId) => {
70
+ const entry = listenersByHook.get(instanceId);
71
71
  if (entry?.reconnectCleanup) {
72
72
  entry.reconnectCleanup();
73
73
  entry.reconnectCleanup = void 0;
@@ -78,43 +78,43 @@ function refetchPlugin(config = {}) {
78
78
  operations: ["read", "infiniteRead"],
79
79
  lifecycle: {
80
80
  onMount(context) {
81
- const { queryKey, eventEmitter, hookId } = context;
82
- if (!hookId) return;
81
+ const { queryKey, eventEmitter, instanceId } = context;
82
+ if (!instanceId) return;
83
83
  const pluginOptions = context.pluginOptions;
84
84
  const shouldRefetchOnFocus = pluginOptions?.refetchOnFocus ?? refetchOnFocus;
85
85
  const shouldRefetchOnReconnect = pluginOptions?.refetchOnReconnect ?? refetchOnReconnect;
86
86
  if (shouldRefetchOnFocus) {
87
- setupFocusListener(hookId, queryKey, eventEmitter);
87
+ setupFocusListener(instanceId, queryKey, eventEmitter);
88
88
  }
89
89
  if (shouldRefetchOnReconnect) {
90
- setupReconnectListener(hookId, queryKey, eventEmitter);
90
+ setupReconnectListener(instanceId, queryKey, eventEmitter);
91
91
  }
92
92
  },
93
93
  onUpdate(context) {
94
- const { queryKey, eventEmitter, hookId } = context;
95
- if (!hookId) return;
94
+ const { queryKey, eventEmitter, instanceId } = context;
95
+ if (!instanceId) return;
96
96
  const pluginOptions = context.pluginOptions;
97
97
  const shouldRefetchOnFocus = pluginOptions?.refetchOnFocus ?? refetchOnFocus;
98
98
  const shouldRefetchOnReconnect = pluginOptions?.refetchOnReconnect ?? refetchOnReconnect;
99
- const entry = listenersByHook.get(hookId);
99
+ const entry = listenersByHook.get(instanceId);
100
100
  const queryKeyChanged = entry && entry.queryKey !== queryKey;
101
101
  if (queryKeyChanged) {
102
- cleanupHook(hookId);
102
+ cleanupHook(instanceId);
103
103
  }
104
- if (shouldRefetchOnFocus && !hasFocusListener(hookId)) {
105
- setupFocusListener(hookId, queryKey, eventEmitter);
106
- } else if (!shouldRefetchOnFocus && hasFocusListener(hookId)) {
107
- removeFocusListener(hookId);
104
+ if (shouldRefetchOnFocus && !hasFocusListener(instanceId)) {
105
+ setupFocusListener(instanceId, queryKey, eventEmitter);
106
+ } else if (!shouldRefetchOnFocus && hasFocusListener(instanceId)) {
107
+ removeFocusListener(instanceId);
108
108
  }
109
- if (shouldRefetchOnReconnect && !hasReconnectListener(hookId)) {
110
- setupReconnectListener(hookId, queryKey, eventEmitter);
111
- } else if (!shouldRefetchOnReconnect && hasReconnectListener(hookId)) {
112
- removeReconnectListener(hookId);
109
+ if (shouldRefetchOnReconnect && !hasReconnectListener(instanceId)) {
110
+ setupReconnectListener(instanceId, queryKey, eventEmitter);
111
+ } else if (!shouldRefetchOnReconnect && hasReconnectListener(instanceId)) {
112
+ removeReconnectListener(instanceId);
113
113
  }
114
114
  },
115
115
  onUnmount(context) {
116
- if (context.hookId) {
117
- cleanupHook(context.hookId);
116
+ if (context.instanceId) {
117
+ cleanupHook(context.instanceId);
118
118
  }
119
119
  }
120
120
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spoosh/plugin-refetch",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Auto-refetch plugin for Spoosh - refetch on focus and reconnect",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -34,11 +34,11 @@
34
34
  }
35
35
  },
36
36
  "peerDependencies": {
37
- "@spoosh/core": ">=0.4.0"
37
+ "@spoosh/core": ">=0.12.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@spoosh/core": "0.10.0",
41
- "@spoosh/test-utils": "0.1.5"
40
+ "@spoosh/core": "0.12.0",
41
+ "@spoosh/test-utils": "0.1.8"
42
42
  },
43
43
  "scripts": {
44
44
  "dev": "tsup --watch",