swimple 1.0.2 → 1.0.4

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/README.md CHANGED
@@ -17,7 +17,7 @@ A simple service worker library for request caching.
17
17
 
18
18
  ```javascript
19
19
  // sw.js
20
- import { createHandleRequest } from "https://cdn.jsdelivr.net/npm/swimple@1.0.0/index.js";
20
+ import { createHandleRequest } from "https://cdn.jsdelivr.net/npm/swimple@1.0.4/src/index.js";
21
21
  ```
22
22
 
23
23
  ### NPM Install
@@ -50,7 +50,7 @@ try {
50
50
 
51
51
  ```javascript
52
52
  // sw.js
53
- import { createHandleRequest } from "https://cdn.jsdelivr.net/npm/swimple@1.0.0/index.js";
53
+ import { createHandleRequest } from "https://cdn.jsdelivr.net/npm/swimple@1.0.4/src/index.js";
54
54
 
55
55
  // create the request handler
56
56
  const handleRequest = createHandleRequest({
@@ -228,7 +228,7 @@ You can also manually trigger cleanup in your service worker's `activate` handle
228
228
 
229
229
  ```javascript
230
230
  // sw.js
231
- import { cleanupOldCacheEntries } from "https://cdn.jsdelivr.net/npm/swimple@1.0.0/index.js";
231
+ import { cleanupOldCacheEntries } from "https://cdn.jsdelivr.net/npm/swimple@1.0.4/src/index.js";
232
232
 
233
233
  self.addEventListener("activate", (event) => {
234
234
  event.waitUntil(
@@ -453,7 +453,7 @@ import {
453
453
  CACHE_STALE_TTL_HEADER,
454
454
  CACHE_INVALIDATE_HEADER,
455
455
  CACHE_CLEAR_HEADER
456
- } from "https://cdn.jsdelivr.net/npm/swimple@1.0.0/headers.js";
456
+ } from "https://cdn.jsdelivr.net/npm/swimple@1.0.4/src/headers.js";
457
457
 
458
458
  // Use in your fetch calls
459
459
  const headers = new Headers();
@@ -531,7 +531,7 @@
531
531
  d="M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.17 6.839 9.49.5.092.682-.217.682-.482 0-.237-.008-.866-.013-1.7-2.782.603-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.463-1.11-1.463-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.114 2.504.336 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.167 22 16.418 22 12c0-5.523-4.477-10-10-10z"
532
532
  />
533
533
  </svg>
534
- View on GitHub
534
+ Docs on GitHub
535
535
  </a>
536
536
  </div>
537
537
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swimple",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "A simple service worker library for request caching",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
package/src/helpers.js CHANGED
@@ -125,9 +125,22 @@ export function isStale(response, ttl, staleTTL) {
125
125
  * @returns {Response}
126
126
  */
127
127
  export function addTimestamp(response) {
128
+ // Clone the response to get the body (since Response body can only be read once)
128
129
  const clonedResponse = response.clone();
129
- clonedResponse.headers.set(CACHE_TIMESTAMP_HEADER, Date.now().toString());
130
- return clonedResponse;
130
+
131
+ // Create a new Headers object initialized with the original headers
132
+ // Use original response headers (not cloned) since we're creating a new Response anyway
133
+ // (We can't mutate cloned headers because they may be immutable in browsers)
134
+ const newHeaders = new Headers(response.headers);
135
+ newHeaders.set(CACHE_TIMESTAMP_HEADER, Date.now().toString());
136
+
137
+ // Create a new Response with the new headers, preserving all other properties
138
+ // Use cloned body to avoid consuming the original response body
139
+ return new Response(clonedResponse.body, {
140
+ status: response.status,
141
+ statusText: response.statusText,
142
+ headers: newHeaders
143
+ });
131
144
  }
132
145
 
133
146
  /**