@b9g/cache 0.2.0 → 0.2.2
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/package.json +6 -1
- package/src/memory.d.ts +1 -0
- package/src/memory.js +5 -2
- package/src/postmessage.d.ts +4 -4
- package/src/postmessage.js +25 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@b9g/cache",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Universal Cache API for ServiceWorker applications. Provides standard CacheStorage and Cache interfaces across all JavaScript runtimes.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cache",
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
"universal",
|
|
12
12
|
"shovel"
|
|
13
13
|
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/bikeshaving/shovel.git",
|
|
17
|
+
"directory": "packages/cache"
|
|
18
|
+
},
|
|
14
19
|
"dependencies": {},
|
|
15
20
|
"devDependencies": {
|
|
16
21
|
"@b9g/libuild": "^0.1.18"
|
package/src/memory.d.ts
CHANGED
package/src/memory.js
CHANGED
|
@@ -169,12 +169,15 @@ var MemoryCache = class extends Cache {
|
|
|
169
169
|
const toRemove = this.#storage.size - this.#options.maxEntries;
|
|
170
170
|
let removed = 0;
|
|
171
171
|
for (const key of this.#storage.keys()) {
|
|
172
|
-
if (removed >= toRemove)
|
|
172
|
+
if (removed >= toRemove)
|
|
173
|
+
break;
|
|
173
174
|
this.#storage.delete(key);
|
|
174
175
|
removed++;
|
|
175
176
|
}
|
|
176
177
|
}
|
|
177
178
|
};
|
|
179
|
+
var memory_default = MemoryCache;
|
|
178
180
|
export {
|
|
179
|
-
MemoryCache
|
|
181
|
+
MemoryCache,
|
|
182
|
+
memory_default as default
|
|
180
183
|
};
|
package/src/postmessage.d.ts
CHANGED
|
@@ -18,9 +18,9 @@ export interface PostMessageCacheOptions {
|
|
|
18
18
|
export declare class PostMessageCache extends Cache {
|
|
19
19
|
#private;
|
|
20
20
|
constructor(name: string, options?: PostMessageCacheOptions);
|
|
21
|
-
match(request:
|
|
22
|
-
put(request:
|
|
23
|
-
delete(request:
|
|
24
|
-
keys(request?:
|
|
21
|
+
match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined>;
|
|
22
|
+
put(request: RequestInfo | URL, response: Response): Promise<void>;
|
|
23
|
+
delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<boolean>;
|
|
24
|
+
keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<readonly Request[]>;
|
|
25
25
|
clear(): Promise<void>;
|
|
26
26
|
}
|
package/src/postmessage.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="./postmessage.d.ts" />
|
|
2
2
|
// src/postmessage.ts
|
|
3
|
-
import { Cache } from "./index.js";
|
|
3
|
+
import { Cache, toRequest } from "./index.js";
|
|
4
4
|
var pendingRequestsRegistry = /* @__PURE__ */ new Map();
|
|
5
5
|
function handleCacheResponse(message) {
|
|
6
6
|
const pending = pendingRequestsRegistry.get(message.requestID);
|
|
@@ -54,16 +54,17 @@ var PostMessageCache = class extends Cache {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
async match(request, options) {
|
|
57
|
+
const req = toRequest(request);
|
|
57
58
|
let requestBody;
|
|
58
59
|
const transfer = [];
|
|
59
|
-
if (
|
|
60
|
-
requestBody = await
|
|
60
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
61
|
+
requestBody = await req.arrayBuffer();
|
|
61
62
|
transfer.push(requestBody);
|
|
62
63
|
}
|
|
63
64
|
const serializedRequest = {
|
|
64
|
-
url:
|
|
65
|
-
method:
|
|
66
|
-
headers: Object.fromEntries(
|
|
65
|
+
url: req.url,
|
|
66
|
+
method: req.method,
|
|
67
|
+
headers: Object.fromEntries(req.headers),
|
|
67
68
|
body: requestBody
|
|
68
69
|
};
|
|
69
70
|
const response = await this.#sendRequest(
|
|
@@ -84,19 +85,20 @@ var PostMessageCache = class extends Cache {
|
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
87
|
async put(request, response) {
|
|
88
|
+
const req = toRequest(request);
|
|
87
89
|
const transfer = [];
|
|
88
90
|
let requestBody;
|
|
89
91
|
let responseBody;
|
|
90
|
-
if (
|
|
91
|
-
requestBody = await
|
|
92
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
93
|
+
requestBody = await req.clone().arrayBuffer();
|
|
92
94
|
transfer.push(requestBody);
|
|
93
95
|
}
|
|
94
96
|
responseBody = await response.clone().arrayBuffer();
|
|
95
97
|
transfer.push(responseBody);
|
|
96
98
|
const serializedRequest = {
|
|
97
|
-
url:
|
|
98
|
-
method:
|
|
99
|
-
headers: Object.fromEntries(
|
|
99
|
+
url: req.url,
|
|
100
|
+
method: req.method,
|
|
101
|
+
headers: Object.fromEntries(req.headers),
|
|
100
102
|
body: requestBody
|
|
101
103
|
};
|
|
102
104
|
const serializedResponse = {
|
|
@@ -115,16 +117,17 @@ var PostMessageCache = class extends Cache {
|
|
|
115
117
|
);
|
|
116
118
|
}
|
|
117
119
|
async delete(request, options) {
|
|
120
|
+
const req = toRequest(request);
|
|
118
121
|
let requestBody;
|
|
119
122
|
const transfer = [];
|
|
120
|
-
if (
|
|
121
|
-
requestBody = await
|
|
123
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
124
|
+
requestBody = await req.arrayBuffer();
|
|
122
125
|
transfer.push(requestBody);
|
|
123
126
|
}
|
|
124
127
|
const serializedRequest = {
|
|
125
|
-
url:
|
|
126
|
-
method:
|
|
127
|
-
headers: Object.fromEntries(
|
|
128
|
+
url: req.url,
|
|
129
|
+
method: req.method,
|
|
130
|
+
headers: Object.fromEntries(req.headers),
|
|
128
131
|
body: requestBody
|
|
129
132
|
};
|
|
130
133
|
return await this.#sendRequest(
|
|
@@ -140,15 +143,16 @@ var PostMessageCache = class extends Cache {
|
|
|
140
143
|
let serializedRequest;
|
|
141
144
|
const transfer = [];
|
|
142
145
|
if (request) {
|
|
146
|
+
const req = toRequest(request);
|
|
143
147
|
let requestBody;
|
|
144
|
-
if (
|
|
145
|
-
requestBody = await
|
|
148
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
149
|
+
requestBody = await req.arrayBuffer();
|
|
146
150
|
transfer.push(requestBody);
|
|
147
151
|
}
|
|
148
152
|
serializedRequest = {
|
|
149
|
-
url:
|
|
150
|
-
method:
|
|
151
|
-
headers: Object.fromEntries(
|
|
153
|
+
url: req.url,
|
|
154
|
+
method: req.method,
|
|
155
|
+
headers: Object.fromEntries(req.headers),
|
|
152
156
|
body: requestBody
|
|
153
157
|
};
|
|
154
158
|
}
|