@swoff/cli 0.3.8 → 0.3.9

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 (112) hide show
  1. package/README.md +47 -33
  2. package/dist/__tests__/assemble-sw.test.js +8 -38
  3. package/dist/__tests__/assemble-sw.test.js.map +1 -1
  4. package/dist/__tests__/cli-integration.test.js +119 -11
  5. package/dist/__tests__/cli-integration.test.js.map +1 -1
  6. package/dist/__tests__/config-types.test.js +32 -15
  7. package/dist/__tests__/config-types.test.js.map +1 -1
  8. package/dist/__tests__/file-generators.test.js +2 -2
  9. package/dist/__tests__/file-generators.test.js.map +1 -1
  10. package/dist/__tests__/glob-matcher.test.js +86 -0
  11. package/dist/__tests__/glob-matcher.test.js.map +1 -0
  12. package/dist/__tests__/invalidation-tags.test.js +207 -23
  13. package/dist/__tests__/invalidation-tags.test.js.map +1 -1
  14. package/dist/__tests__/loader.test.js +12 -12
  15. package/dist/__tests__/loader.test.js.map +1 -1
  16. package/dist/__tests__/validator.test.js +144 -97
  17. package/dist/__tests__/validator.test.js.map +1 -1
  18. package/dist/index.js +11 -10
  19. package/dist/index.js.map +1 -1
  20. package/dist/lib/cli/help.js +0 -5
  21. package/dist/lib/cli/help.js.map +1 -1
  22. package/dist/lib/commands/add.js +50 -32
  23. package/dist/lib/commands/add.js.map +1 -1
  24. package/dist/lib/commands/clean.js +1 -15
  25. package/dist/lib/commands/clean.js.map +1 -1
  26. package/dist/lib/commands/generate-guide.js +2 -2
  27. package/dist/lib/commands/generate-guide.js.map +1 -1
  28. package/dist/lib/commands/generate.js +7 -21
  29. package/dist/lib/commands/generate.js.map +1 -1
  30. package/dist/lib/commands/info.js +8 -6
  31. package/dist/lib/commands/info.js.map +1 -1
  32. package/dist/lib/commands/init.js +2 -10
  33. package/dist/lib/commands/init.js.map +1 -1
  34. package/dist/lib/commands/validate.js +3 -3
  35. package/dist/lib/commands/validate.js.map +1 -1
  36. package/dist/lib/config/loader.js +3 -6
  37. package/dist/lib/config/loader.js.map +1 -1
  38. package/dist/lib/config/validator.js +157 -88
  39. package/dist/lib/config/validator.js.map +1 -1
  40. package/dist/lib/generators/file-generators/cache.js +2 -10
  41. package/dist/lib/generators/file-generators/cache.js.map +1 -1
  42. package/dist/lib/generators/file-generators/client-injector.js +50 -11
  43. package/dist/lib/generators/file-generators/client-injector.js.map +1 -1
  44. package/dist/lib/generators/file-generators/fetch-wrapper.js +92 -64
  45. package/dist/lib/generators/file-generators/fetch-wrapper.js.map +1 -1
  46. package/dist/lib/generators/file-generators/generate-hooks.js +1 -1
  47. package/dist/lib/generators/file-generators/generate-hooks.js.map +1 -1
  48. package/dist/lib/generators/file-generators/gql-wrapper.js +1 -14
  49. package/dist/lib/generators/file-generators/gql-wrapper.js.map +1 -1
  50. package/dist/lib/generators/file-generators/guide-generator.js +6 -640
  51. package/dist/lib/generators/file-generators/guide-generator.js.map +1 -1
  52. package/dist/lib/generators/file-generators/invalidation-tags.js +206 -19
  53. package/dist/lib/generators/file-generators/invalidation-tags.js.map +1 -1
  54. package/dist/lib/generators/file-generators/manifest.js +2 -2
  55. package/dist/lib/generators/file-generators/manifest.js.map +1 -1
  56. package/dist/lib/generators/file-generators/mutation-queue.js +29 -9
  57. package/dist/lib/generators/file-generators/mutation-queue.js.map +1 -1
  58. package/dist/lib/generators/file-generators/push.js +6 -7
  59. package/dist/lib/generators/file-generators/push.js.map +1 -1
  60. package/dist/lib/generators/file-generators/quick-readme.js +8 -125
  61. package/dist/lib/generators/file-generators/quick-readme.js.map +1 -1
  62. package/dist/lib/generators/file-generators/server-push.js +11 -1
  63. package/dist/lib/generators/file-generators/server-push.js.map +1 -1
  64. package/dist/lib/generators/file-generators/sw-generator-build.js +8 -9
  65. package/dist/lib/generators/file-generators/sw-generator-build.js.map +1 -1
  66. package/dist/lib/generators/file-generators/sw-injector.js +2 -1
  67. package/dist/lib/generators/file-generators/sw-injector.js.map +1 -1
  68. package/dist/lib/generators/file-generators/type-definitions.js +0 -3
  69. package/dist/lib/generators/file-generators/type-definitions.js.map +1 -1
  70. package/dist/lib/generators/sw-generator.js +8 -18
  71. package/dist/lib/generators/sw-generator.js.map +1 -1
  72. package/dist/lib/generators/sw-sections/activate-handler.js.map +1 -1
  73. package/dist/lib/generators/sw-sections/assemble-sw.js +14 -11
  74. package/dist/lib/generators/sw-sections/assemble-sw.js.map +1 -1
  75. package/dist/lib/generators/sw-sections/background-sync-handler.js +59 -17
  76. package/dist/lib/generators/sw-sections/background-sync-handler.js.map +1 -1
  77. package/dist/lib/generators/sw-sections/config-header.js +2 -2
  78. package/dist/lib/generators/sw-sections/config-header.js.map +1 -1
  79. package/dist/lib/generators/sw-sections/fetch-handler.js +437 -136
  80. package/dist/lib/generators/sw-sections/fetch-handler.js.map +1 -1
  81. package/dist/lib/generators/sw-sections/message-handler.js +55 -15
  82. package/dist/lib/generators/sw-sections/message-handler.js.map +1 -1
  83. package/dist/lib/generators/sw-sections/sw-push.js +67 -0
  84. package/dist/lib/generators/sw-sections/sw-push.js.map +1 -0
  85. package/dist/lib/generators/sw-sections/tag-management.js +60 -20
  86. package/dist/lib/generators/sw-sections/tag-management.js.map +1 -1
  87. package/dist/lib/generators/swoff-files-generator.js +5 -15
  88. package/dist/lib/generators/swoff-files-generator.js.map +1 -1
  89. package/dist/lib/shared/config-types.js +121 -71
  90. package/dist/lib/shared/config-types.js.map +1 -1
  91. package/dist/lib/shared/glob-matcher.js +77 -0
  92. package/dist/lib/shared/glob-matcher.js.map +1 -0
  93. package/dist/lib/utils/tty-status.js +21 -0
  94. package/dist/lib/utils/tty-status.js.map +1 -0
  95. package/docs/API.md +565 -0
  96. package/docs/ARCHITECTURE.md +374 -0
  97. package/docs/CLI.md +148 -0
  98. package/docs/COMPARISON.md +192 -0
  99. package/docs/CONFIG.md +277 -0
  100. package/docs/ECOSYSTEM.md +33 -0
  101. package/package.json +2 -1
  102. package/templates/hooks/useAuth.jsx +2 -2
  103. package/templates/hooks/useAuth.tsx +2 -2
  104. package/templates/hooks/useCachedFetch.jsx +3 -28
  105. package/templates/hooks/useCachedFetch.tsx +2 -33
  106. package/templates/hooks/useMutation.tsx +13 -1
  107. package/templates/hooks/useMutationQueue.jsx +2 -1
  108. package/templates/hooks/useMutationQueue.tsx +2 -1
  109. package/templates/hooks/useMutationState.jsx +8 -22
  110. package/templates/hooks/useMutationState.tsx +8 -24
  111. package/templates/hooks/usePushSubscription.jsx +3 -3
  112. package/templates/hooks/usePushSubscription.tsx +3 -3
@@ -9,12 +9,12 @@ export function generateFetchWrapper(ctx) {
9
9
  const T = (type) => (ts ? `: ${type}` : "");
10
10
  const R = (type) => (ts ? `: ${type} ` : " ");
11
11
  const G = (type) => (ts ? `<${type}>` : "");
12
- const tagInvalidation = ctx.config.features.tagInvalidation;
12
+ const tagInvalidation = ctx.config.features.tagInvalidation.enabled;
13
13
  const authEnabled = ctx.config.features.auth.enabled;
14
14
  const mutationQueue = ctx.config.features.mutationQueue.enabled;
15
15
  const importLines = [
16
16
  tagInvalidation
17
- ? `import { generateTags } from "./invalidation-tags.${ext}";`
17
+ ? `import { generateTags, invalidateUrl${tagInvalidation && mutationQueue ? ", expandCascading" : ""} } from "./invalidation-tags.${ext}";`
18
18
  : "",
19
19
  tagInvalidation ? `import { invalidateByTags } from "./cache.${ext}";` : "",
20
20
  authEnabled
@@ -31,13 +31,7 @@ export function generateFetchWrapper(ctx) {
31
31
  export interface FetchWithCacheResult${G("T")} {
32
32
  response${T("Response & { json(): Promise<T> }")};
33
33
  fromCache${T("boolean")};
34
- }
35
-
36
- export interface ResolvedFetchConfig {
37
- staleTime${T("number")};
38
- refetchOnWindowFocus${T("boolean")};
39
- refetchOnReconnect${T("boolean")};
40
- refetchInterval${T("number")};
34
+ queued${T("boolean")};
41
35
  }
42
36
  `
43
37
  : "";
@@ -45,13 +39,16 @@ export interface ResolvedFetchConfig {
45
39
  ? `
46
40
  export interface FetchWithCacheOptions extends RequestInit {
47
41
  tags?: string[];
48
- staleWhileRevalidate?: boolean;
49
42
  auth?: boolean;
50
43
  queueOffline?: boolean;
51
44
  invalidate?: 'auto' | string[] | false;
52
45
  type?: 'read' | 'mutation';
53
- strategy?: 'cache-first' | 'network-first' | 'stale-while-revalidate' | 'cache-only' | 'network-only';
46
+ strategy?: 'cache-first' | 'network-first' | 'stale-while-revalidate' | 'cache-only' | 'network-only' | 'reactive';
54
47
  staleTime?: number;
48
+ /** Custom response validation for mutation success. Default: res.ok. Use this when your API returns 200 with { success: false } for logical failures. */
49
+ validateSuccess?: (response: Response) => boolean | Promise<boolean>;
50
+ /** Override the URL used for auto-invalidation. Defaults to the request URL. Useful when the mutation URL differs from the cache tag URL. */
51
+ invalidateUrl?: string;
55
52
  }
56
53
  `
57
54
  : "";
@@ -82,45 +79,56 @@ export interface FetchWithCacheOptions extends RequestInit {
82
79
  window.dispatchEvent(new CustomEvent("sw-auth-unauthorized"));
83
80
  }`
84
81
  : "";
85
- const offlineReadBlock = ` if (isRead) {
86
- if (options.signal?.aborted) throw new DOMException("The operation was aborted", "AbortError");
82
+ const mutationTagsBlock = tagInvalidation && mutationQueue
83
+ ? ` // Pre-compute invalidation tags for SW-side IDB storage
84
+ let mutationTags: string[] = [];
85
+ if (!isRead) {
86
+ const invalidateSetting = options.invalidate !== false ? (options.invalidate || 'auto') : false;
87
+ if (invalidateSetting !== false) {
88
+ if (Array.isArray(invalidateSetting)) {
89
+ mutationTags = invalidateSetting;
90
+ } else {
91
+ mutationTags = generateTags(url);
92
+ mutationTags = expandCascading(mutationTags);
93
+ }
94
+ headers.set("X-SW-Invalidate-Tags", mutationTags.join(","));
95
+ }
96
+ }`
97
+ : ` let mutationTags: string[] = options.tags || [];`;
98
+ const offlineReadCatchBlock = ` if (options.signal?.aborted) throw new DOMException("The operation was aborted", "AbortError");
87
99
  const cached = await caches.match(input);
88
- if (cached) return { response: cached, fromCache: true };
89
- throw new Error("Offline: no cached data available");
90
- }`;
91
- const offlineWriteBlock = mutationQueue
92
- ? ` // Write offline — auto-queue
93
- if (options.queueOffline !== false) {
94
- const headerObj: Record<string, string> = {};
95
- headers.forEach((value, key) => {
96
- headerObj[key] = value;
97
- });
100
+ if (cached) return { response: cached, fromCache: true, queued: false };
101
+ throw new Error("Offline: no cached data available");`;
102
+ const offlineWriteFallbackBlock = mutationQueue
103
+ ? ` if (options.queueOffline !== false) {
98
104
  await queueMutation({
99
105
  method,
100
106
  url,
101
107
  body: options.body,
102
- headers: headerObj,
103
- tags: options.tags || [],
108
+ headers: {},
109
+ tags: mutationTags,
104
110
  timestamp: Date.now(),
105
111
  });
106
112
  return {
107
- response: new Response(null, { status: 202, statusText: "Queued" }),
113
+ response: new Response(JSON.stringify({ queued: true }), { status: 202, headers: { "Content-Type": "application/json" } }),
108
114
  fromCache: false,
115
+ queued: true,
109
116
  };
110
- }
111
- throw new Error("Offline: write operation failed");`
112
- : ` throw new Error("Offline: write operation failed");`;
117
+ }`
118
+ : ``;
113
119
  const autoInvalidateBlock = tagInvalidation
114
120
  ? `
115
- // Auto-invalidate after mutation success
116
- if (!isRead && response.ok) {
121
+ // Auto-invalidate after mutation success (skip if SW queued it)
122
+ const mutationSuccess = options.validateSuccess ? await options.validateSuccess(response) : response.ok;
123
+ const mutationQueued = response.headers.get("X-SW-Mutation-Queued") === "true";
124
+ if (!isRead && mutationSuccess && !mutationQueued) {
117
125
  const invalidateSetting = options.invalidate !== false ? (options.invalidate || 'auto') : false;
118
126
  if (invalidateSetting !== false) {
119
- const tagsToInvalidate${T("string[]")} = Array.isArray(invalidateSetting)
120
- ? invalidateSetting
121
- : (options.tags || generateTags(url));
122
- if (tagsToInvalidate.length > 0) {
123
- await invalidateByTags(tagsToInvalidate);
127
+ const invalidateTarget = options.invalidateUrl || url;
128
+ if (Array.isArray(invalidateSetting)) {
129
+ await invalidateByTags(invalidateSetting);
130
+ } else {
131
+ await invalidateUrl(invalidateTarget);
124
132
  }
125
133
  }
126
134
  }`
@@ -135,10 +143,6 @@ export interface FetchWithCacheOptions extends RequestInit {
135
143
  }
136
144
  }`
137
145
  : "";
138
- const staleTimeHeaders = ` // Pass staleTime to SW if set at per-request level
139
- if (options.staleTime !== undefined) {
140
- headers.set("X-SW-Stale-Time", String(options.staleTime));
141
- }`;
142
146
  const code = `/**
143
147
  * Swoff Fetch Wrapper
144
148
  * Unified fetch with caching, auth, offline queue, auto-invalidation, staleTime, prefetching, and
@@ -157,17 +161,28 @@ export interface FetchWithCacheOptions extends RequestInit {
157
161
  * body: JSON.stringify({ title: "New task" }),
158
162
  * });
159
163
  *
160
- * // Authenticated request (works with bearer, cookie, custom)
161
- * const { response: userRes } = await fetchWithCache("/api/me", { auth: true });
164
+ * // Skip auto-invalidation, invalidate manually later
165
+ * await fetchWithCache("/api/todos", {
166
+ * method: "POST",
167
+ * body: JSON.stringify({ title: "New" }),
168
+ * invalidate: false,
169
+ * });
170
+ *
171
+ * // Validate mutation success with custom logic
172
+ * await fetchWithCache("/api/todos", {
173
+ * method: "POST",
174
+ * body: JSON.stringify({ title: "New" }),
175
+ * validateSuccess: (res) => res.status === 200,
176
+ * });
162
177
  *
163
- * // Custom tags + stale-while-revalidate
164
- * const { response: staleRes, fromCache } = await fetchWithCache("/api/data", {
165
- * tags: ["data"],
166
- * staleWhileRevalidate: true,
178
+ * // Custom tags for caching (read) + explicit invalidate tags (mutation)
179
+ * await fetchWithCache("/api/todos", {
180
+ * tags: ["custom-tag"],
181
+ * invalidate: ["custom-tag"],
167
182
  * });
168
183
  *
169
- * // Set staleTime per-request (overrides config SW handles bg refresh)
170
- * await fetchWithCache("/api/todos", { staleTime: 30 });
184
+ * // Authenticated request (works with bearer, cookie, custom)
185
+ * const { response: userRes } = await fetchWithCache("/api/me", { auth: true });
171
186
  *
172
187
  * // Prefetch (fire-and-forget warm the cache)
173
188
  * prefetchCache("/api/todos");
@@ -197,9 +212,9 @@ ${interfaceBlock}${optionsInterface}
197
212
  const inFlightRequests = new Map${G("string, Promise<Response>")}();
198
213
 
199
214
  /** Fetch with caching, auth, offline queue, auto-invalidation, and per-request strategy override. Returns { response, fromCache }. Use { auth: true } for authenticated requests — works with bearer, cookie, and custom auth types. */
200
- export async function fetchWithCache${G("T")}(input${T("RequestInfo")}, options${T("RequestInit & { tags?: string[]; staleWhileRevalidate?: boolean; auth?: boolean; queueOffline?: boolean; invalidate?: 'auto' | string[] | false; type?: 'read' | 'mutation'; strategy?: 'cache-first' | 'network-first' | 'stale-while-revalidate' | 'cache-only' | 'network-only'; staleTime?: number }")} = {})${R("Promise<FetchWithCacheResult<T>>")}{
215
+ export async function fetchWithCache${G("T")}(input${T("RequestInfo")}, options${T("RequestInit & FetchWithCacheOptions")} = {})${R("Promise<FetchWithCacheResult<T>>")}{
201
216
  const method = (options.method || "GET").toUpperCase();
202
- const isRead = options.type === "read" || (options.type !== "mutation" && (method === "GET" || method === "HEAD"));
217
+ const isRead = options.type === "read" || (options.type !== "mutation" && (method === "GET" || method === "HEAD" || method === "OPTIONS"));
203
218
  const url = typeof input === "string" ? input : input.url;
204
219
 
205
220
  const headers = new Headers(options.headers);
@@ -214,28 +229,26 @@ ${autoTagsBlock}
214
229
  headers.set("X-SW-Cache-Tags", options.tags.join(","));
215
230
  }
216
231
 
217
- if (options.staleWhileRevalidate && !options.strategy) {
218
- headers.set("X-SW-Strategy", "stale-while-revalidate");
219
- }
220
232
  if (options.strategy) {
221
233
  headers.set("X-SW-Strategy", options.strategy);
222
234
  }
223
- ${staleTimeHeaders}
235
+ if (options.staleTime !== undefined) {
236
+ headers.set("X-SW-Stale-Time", String(options.staleTime));
237
+ }
224
238
  ${authBlock}${authUrlsBlock}
239
+ // Forward no-queue option to SW
240
+ if (options.queueOffline === false) {
241
+ headers.set("X-SW-No-Queue", "true");
242
+ }
243
+
225
244
  const fetchOptions${T("RequestInit")} = { ...options, headers };
226
245
  ${authCredentialsBlock}
227
246
 
228
- // Offline handling
229
- if (!navigator.onLine) {
230
- ${offlineReadBlock}
231
- ${offlineWriteBlock}
232
- }
233
-
234
247
  // Check for abort before proceeding
235
248
  if (options.signal?.aborted) {
236
249
  throw new DOMException("The operation was aborted", "AbortError");
237
250
  }
238
-
251
+ ${mutationTagsBlock}
239
252
  // Deduplicate in-flight GET requests
240
253
  let responsePromise${T("Promise<Response>")};
241
254
  if (isRead && inFlightRequests.has(url)) {
@@ -259,14 +272,29 @@ ${offlineWriteBlock}
259
272
  }
260
273
  }
261
274
 
262
- const response = await responsePromise;
275
+ let response${T("Response")};
276
+ try {
277
+ response = await responsePromise;
278
+ } catch (err) {
279
+ if (err instanceof TypeError) {
280
+ if (isRead) {
281
+ ${offlineReadCatchBlock}
282
+ }
283
+ // SW not controlling — fallback to client-side queue
284
+ if (!navigator.serviceWorker?.controller) {
285
+ ${offlineWriteFallbackBlock}
286
+ }
287
+ }
288
+ throw err;
289
+ }
263
290
  ${autoInvalidateBlock}${auth401Block}
264
291
  const fromCache = response.headers.get("X-SW-From-Cache") === "true";
265
- return { response, fromCache };
292
+ const queued = response.headers.get("X-SW-Mutation-Queued") === "true";
293
+ return { response, fromCache, queued };
266
294
  }
267
295
 
268
296
  /** Fire-and-forget prefetch: warms the cache for a URL without blocking. Useful for route prefetching or link hover prefetching. */
269
- export function prefetchCache(input${T("RequestInfo")}, options${T("RequestInit & { tags?: string[]; staleWhileRevalidate?: boolean; auth?: boolean; queueOffline?: boolean; invalidate?: 'auto' | string[] | false; type?: 'read' | 'mutation'; strategy?: 'cache-first' | 'network-first' | 'stale-while-revalidate' | 'cache-only' | 'network-only'; staleTime?: number }")} = {})${R("void")}{
297
+ export function prefetchCache(input${T("RequestInfo")}, options${T("RequestInit & FetchWithCacheOptions")} = {})${R("void")}{
270
298
  fetchWithCache(input, { ...options }).catch(() => {
271
299
  // Prefetch failures are intentionally silent
272
300
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-wrapper.js","sourceRoot":"","sources":["../../../../src/lib/generators/file-generators/fetch-wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-wrapper.js","sourceRoot":"","sources":["../../../../src/lib/generators/file-generators/fetch-wrapper.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ export function generateHooks(ctx) {
36
36
  if (config.features.backgroundSync) {
37
37
  copyHook(hooksDir, "useBackgroundSync", ext);
38
38
  }
39
- if (config.features.tagInvalidation) {
39
+ if (config.features.tagInvalidation.enabled) {
40
40
  copyHook(hooksDir, "useCacheInvalidation", ext);
41
41
  }
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-hooks.js","sourceRoot":"","sources":["../../../../src/lib/generators/file-generators/generate-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;AAEpE,SAAS,QAAQ,CAAC,QAAgB,EAAE,IAAY,EAAE,GAAW;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;IAClD,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAqB;IACjD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACrD,IAAI,aAAa,KAAK,OAAO;QAAE,OAAO;IAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAE5C,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAC/C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QACpC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"generate-hooks.js","sourceRoot":"","sources":["../../../../src/lib/generators/file-generators/generate-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;AAEpE,SAAS,QAAQ,CAAC,QAAgB,EAAE,IAAY,EAAE,GAAW;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;IAClD,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAqB;IACjD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACrD,IAAI,aAAa,KAAK,OAAO;QAAE,OAAO;IAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAE5C,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAC/C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC5C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -12,16 +12,10 @@ export function generateGqlWrapper(ctx) {
12
12
  export interface GqlOptions {
13
13
  variables?: Record<string, unknown>;
14
14
  tags?: string[];
15
- staleWhileRevalidate?: boolean;
16
15
  auth?: boolean;
17
16
  queueOffline?: boolean;
18
17
  invalidate?: 'auto' | string[] | false;
19
18
  }
20
-
21
- export interface GqlResult${G("T")} {
22
- data${T("T")};
23
- fromCache${T("boolean")};
24
- }
25
19
  `
26
20
  : "";
27
21
  const code = `/**
@@ -51,13 +45,6 @@ export interface GqlResult${G("T")} {
51
45
  * // Authenticated
52
46
  * const { data } = await queryGql("query Me { me { name } }", {}, { auth: true });
53
47
  *
54
- * // Custom options
55
- * const { data } = await queryGql(
56
- * "query GetData { data { id } }",
57
- * {},
58
- * { staleWhileRevalidate: true, tags: ["data"] }
59
- * );
60
- *
61
48
  * // Offline: mutations are auto-queued
62
49
  * const { data } = await mutateGql(
63
50
  * "mutation CreateTodo($title: String!) { createTodo(title: $title) { id } }",
@@ -67,6 +54,7 @@ export interface GqlResult${G("T")} {
67
54
  */
68
55
 
69
56
  import { fetchWithCache } from "./fetch-wrapper.${ext}";
57
+ import type { GqlResult } from "./swoff";
70
58
  ${optionsInterface}
71
59
  /** Extract operation name from a GraphQL document. Returns null for anonymous queries (e.g. "{ todos { id } }"). */
72
60
  function getOperationName(query${T("string")})${T("string | null")}{
@@ -119,7 +107,6 @@ export async function fetchWithGql${G("T")}(
119
107
  },
120
108
  tags,
121
109
  type: isRead ? "read" : "mutation",
122
- staleWhileRevalidate: options.staleWhileRevalidate,
123
110
  auth: options.auth,
124
111
  queueOffline: options.queueOffline,
125
112
  invalidate: options.invalidate,
@@ -1 +1 @@
1
- {"version":3,"file":"gql-wrapper.js","sourceRoot":"","sources":["../../../../src/lib/generators/file-generators/gql-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAAC,GAAqB;IACtD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACpB,MAAM,EAAE,GAAG,GAAG,KAAK,IAAI,CAAC;IACxB,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEtD,MAAM,gBAAgB,GAAG,EAAE;QACzB,CAAC,CAAC;;;;;;;;;;4BAUsB,CAAC,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,GAAG,CAAC;aACD,CAAC,CAAC,SAAS,CAAC;;CAExB;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,IAAI,GAAG;;;;;;;8EAO+D,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAmC/B,GAAG;EACnD,gBAAgB;;iCAEe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC;;;;;;gCAMlC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;;;;;;;6BAO9B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;;;;;;;;8BAQnC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;;;;;;;;;;oCAU7B,CAAC,CAAC,GAAG,CAAC;SACjC,CAAC,CAAC,QAAQ,CAAC;WACT,CAAC,CAAC,YAAY,CAAC;GACvB,CAAC,CAAC,uBAAuB,CAAC;;;;;;;0DAO6B,QAAQ;;;;;;;;;;;;;;;;8BAgBpC,EAAE,CAAC,GAAG,CAAC;;;;gCAIL,CAAC,CAAC,GAAG,CAAC;SAC7B,CAAC,CAAC,QAAQ,CAAC;aACP,CAAC,CAAC,qCAAqC,CAAC;WAC1C,CAAC,CAAC,YAAY,CAAC;GACvB,CAAC,CAAC,uBAAuB,CAAC;uBACN,CAAC,CAAC,GAAG,CAAC;;;;iCAII,CAAC,CAAC,GAAG,CAAC;YAC3B,CAAC,CAAC,QAAQ,CAAC;aACV,CAAC,CAAC,qCAAqC,CAAC;WAC1C,CAAC,CAAC,YAAY,CAAC;GACvB,CAAC,CAAC,uBAAuB,CAAC;uBACN,CAAC,CAAC,GAAG,CAAC;;CAE5B,CAAC;IAEA,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"gql-wrapper.js","sourceRoot":"","sources":["../../../../src/lib/generators/file-generators/gql-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAAC,GAAqB;IACtD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACpB,MAAM,EAAE,GAAG,GAAG,KAAK,IAAI,CAAC;IACxB,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEtD,MAAM,gBAAgB,GAAG,EAAE;QACzB,CAAC,CAAC;;;;;;;;CAQL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,IAAI,GAAG;;;;;;;8EAO+D,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA4B/B,GAAG;;EAEnD,gBAAgB;;iCAEe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC;;;;;;gCAMlC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;;;;;;;6BAO9B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;;;;;;;;8BAQnC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;;;;;;;;;;oCAU7B,CAAC,CAAC,GAAG,CAAC;SACjC,CAAC,CAAC,QAAQ,CAAC;WACT,CAAC,CAAC,YAAY,CAAC;GACvB,CAAC,CAAC,uBAAuB,CAAC;;;;;;;0DAO6B,QAAQ;;;;;;;;;;;;;;;8BAepC,EAAE,CAAC,GAAG,CAAC;;;;gCAIL,CAAC,CAAC,GAAG,CAAC;SAC7B,CAAC,CAAC,QAAQ,CAAC;aACP,CAAC,CAAC,qCAAqC,CAAC;WAC1C,CAAC,CAAC,YAAY,CAAC;GACvB,CAAC,CAAC,uBAAuB,CAAC;uBACN,CAAC,CAAC,GAAG,CAAC;;;;iCAII,CAAC,CAAC,GAAG,CAAC;YAC3B,CAAC,CAAC,QAAQ,CAAC;aACV,CAAC,CAAC,qCAAqC,CAAC;WAC1C,CAAC,CAAC,YAAY,CAAC;GACvB,CAAC,CAAC,uBAAuB,CAAC;uBACN,CAAC,CAAC,GAAG,CAAC;;CAE5B,CAAC;IAEA,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}