swpp-backends 2.3.0 → 2.3.1
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/ServiceWorkerBuilder.js +1 -1
- package/dist/SwppRules.js +1 -1
- package/dist/index.js +1 -1
- package/dist/resources/sw-template.js +26 -5
- package/package.json +1 -1
- package/types/SwppRules.d.ts +1 -4
|
@@ -59,7 +59,7 @@ function buildServiceWorker() {
|
|
|
59
59
|
url = new URL(request.url)
|
|
60
60
|
}
|
|
61
61
|
`).replaceAll('// [modifyRequest else-if]', `
|
|
62
|
-
else if (modify) handleFetch(
|
|
62
|
+
else if (modify) handleFetch(fetchWithCache(request, false).catch(err => new Response(err, {status: 499})))
|
|
63
63
|
`);
|
|
64
64
|
}
|
|
65
65
|
if (skipRequest) {
|
package/dist/SwppRules.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ const VersionAnalyzer_1 = require("./VersionAnalyzer");
|
|
|
10
10
|
const DomBuilder_1 = require("./DomBuilder");
|
|
11
11
|
// noinspection JSUnusedGlobalSymbols
|
|
12
12
|
exports.default = {
|
|
13
|
-
version: '2.3.
|
|
13
|
+
version: '2.3.1',
|
|
14
14
|
cache: {
|
|
15
15
|
readEjectData: Utils_1.readEjectData, readUpdateJson: Variant_1.readUpdateJson,
|
|
16
16
|
readRules: Variant_1.readRules, readMergeVersionMap: Variant_1.readMergeVersionMap,
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
const spare = getSpareUrls(request.url)
|
|
137
137
|
if (spare) handleFetch(fetchFile(request, false, spare))
|
|
138
138
|
// [modifyRequest else-if]
|
|
139
|
-
else handleFetch(
|
|
139
|
+
else handleFetch(fetchWithCache(request).catch(err => new Response(err, {status: 499})))
|
|
140
140
|
}
|
|
141
141
|
})
|
|
142
142
|
|
|
@@ -150,22 +150,43 @@
|
|
|
150
150
|
})
|
|
151
151
|
|
|
152
152
|
/**
|
|
153
|
-
*
|
|
153
|
+
* 基础 fetch
|
|
154
154
|
* @param request {Request|string}
|
|
155
|
-
* @param banCache {boolean}
|
|
155
|
+
* @param banCache {boolean} 是否禁用缓存
|
|
156
|
+
* @param cors {boolean} 是否启用 cors
|
|
156
157
|
* @param optional {RequestInit?} 额外的配置项
|
|
157
158
|
* @return {Promise<Response>}
|
|
158
159
|
*/
|
|
159
|
-
const
|
|
160
|
+
const baseFetcher = (request, banCache, cors, optional) => {
|
|
160
161
|
if (!optional) optional = {}
|
|
161
162
|
optional.cache = banCache ? 'no-store' : 'default'
|
|
162
|
-
if (
|
|
163
|
+
if (cors) {
|
|
163
164
|
optional.mode = 'cors'
|
|
164
165
|
optional.credentials = 'same-origin'
|
|
165
166
|
}
|
|
166
167
|
return fetch(request, optional)
|
|
167
168
|
}
|
|
168
169
|
|
|
170
|
+
/**
|
|
171
|
+
* 添加 cors 配置请求指定资源
|
|
172
|
+
* @param request {Request}
|
|
173
|
+
* @param optional {RequestInit?} 额外的配置项
|
|
174
|
+
* @return {Promise<Response>}
|
|
175
|
+
*/
|
|
176
|
+
const fetchWithCache = (request, optional) =>
|
|
177
|
+
baseFetcher(request, false, isCors(request), optional)
|
|
178
|
+
|
|
179
|
+
// noinspection JSUnusedLocalSymbols
|
|
180
|
+
/**
|
|
181
|
+
* 添加 cors 配置请求指定资源
|
|
182
|
+
* @param request {Request}
|
|
183
|
+
* @param banCache {boolean} 是否禁用 HTTP 缓存
|
|
184
|
+
* @param optional {RequestInit?} 额外的配置项
|
|
185
|
+
* @return {Promise<Response>}
|
|
186
|
+
*/
|
|
187
|
+
const fetchWithCors = (request, banCache, optional) =>
|
|
188
|
+
baseFetcher(request, banCache, true, optional)
|
|
189
|
+
|
|
169
190
|
/**
|
|
170
191
|
* 判断指定 url 击中了哪一种缓存,都没有击中则返回 null
|
|
171
192
|
* @param url {URL}
|
package/package.json
CHANGED
package/types/SwppRules.d.ts
CHANGED
|
@@ -21,10 +21,7 @@ export interface SwppRules {
|
|
|
21
21
|
[propName: string]: CacheRules;
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
|
-
* 判断指定请求是否使用 CORS
|
|
25
|
-
*
|
|
26
|
-
* **注意:对于需要使用缓存、竞速等功能的 URL 必须使用 CORS,否则无法判断状态码从而使得功能失效或工作异常**
|
|
27
|
-
*
|
|
24
|
+
* 判断指定请求是否使用 CORS(必须启用 CORS 的请求将不通过该函数判断)
|
|
28
25
|
* @param request 当前请求的 request
|
|
29
26
|
*/
|
|
30
27
|
isCors?: (request: Request) => boolean;
|