hexo-swpp 1.6.0 → 1.7.0
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/index.js +1 -1
- package/package.json +1 -1
- package/sw-template.js +3 -26
package/index.js
CHANGED
|
@@ -250,7 +250,7 @@ const fetchFile = link => new Promise((resolve, reject) => {
|
|
|
250
250
|
referer: new URL(link).hostname,
|
|
251
251
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62'
|
|
252
252
|
},
|
|
253
|
-
timeout: pluginConfig.timeout ?? 1500
|
|
253
|
+
timeout: pluginConfig.external.timeout ?? 1500
|
|
254
254
|
}).then(response => {
|
|
255
255
|
switch (response.status) {
|
|
256
256
|
case 200: case 301: case 302:
|
package/package.json
CHANGED
package/sw-template.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
self.addEventListener('install', () => self.skipWaiting())
|
|
10
10
|
|
|
11
11
|
// noinspection JSFileReferences
|
|
12
|
-
const { cacheList,
|
|
12
|
+
const { cacheList, modifyRequest } = require('../sw-cache')
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* 删除指定缓存
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
self.addEventListener('fetch', event => {
|
|
30
30
|
const request = event.request
|
|
31
31
|
if (request.method !== 'GET') return
|
|
32
|
-
const
|
|
32
|
+
const edit = modifyRequest(request)
|
|
33
33
|
const url = new URL(request.url)
|
|
34
34
|
if (findCache(url)) {
|
|
35
35
|
const key = `${url.protocol}//${url.host}${url.pathname}`
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
return response
|
|
43
43
|
})
|
|
44
44
|
))
|
|
45
|
-
} else if (
|
|
45
|
+
} else if (edit) {
|
|
46
46
|
event.respondWith(fetch(request))
|
|
47
47
|
}
|
|
48
48
|
})
|
|
@@ -72,29 +72,6 @@
|
|
|
72
72
|
return null
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
/**
|
|
76
|
-
* 检查连接是否需要重定向至另外的链接,如果需要则返回新的Request,否则返回null<br/>
|
|
77
|
-
* 该函数会顺序匹配{@link replaceList}中的所有项目,即使已经有可用的替换项<br/>
|
|
78
|
-
* 故该函数允许重复替换,例如:<br/>
|
|
79
|
-
* 如果第一个匹配项把链接由"http://abc.com/"改为了"https://abc.com/"<br/>
|
|
80
|
-
* 此时第二个匹配项可以以此为基础继续进行修改,替换为"https://abc.net/"<br/>
|
|
81
|
-
* @return {boolean} 是否进行了替换
|
|
82
|
-
*/
|
|
83
|
-
function replaceRequest(request) {
|
|
84
|
-
let flag = false
|
|
85
|
-
for (let key in replaceList) {
|
|
86
|
-
const value = replaceList[key]
|
|
87
|
-
for (let source of value.source) {
|
|
88
|
-
if (request.url.match(source)) {
|
|
89
|
-
// noinspection JSUnresolvedVariable
|
|
90
|
-
request.url = request.url.replace(source, value.dist)
|
|
91
|
-
flag = true
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return flag
|
|
96
|
-
}
|
|
97
|
-
|
|
98
75
|
/**
|
|
99
76
|
* 根据JSON删除缓存
|
|
100
77
|
* @returns {Promise<{version, list}>}
|