-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathastHook.js
58 lines (34 loc) · 1.56 KB
/
astHook.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const handleCode =require("./handleCode")
function astHook(requestDetail, responseDetail){
// 跳过官方库
if( typeof requestDetail.url == "string" && (requestDetail.url.match("jquery") || requestDetail.url.match("layui")|| requestDetail.url.match("swiper") || requestDetail.url.match("element"))){
return {
response: responseDetail.response
}
}
// 处理Js文件
if( typeof requestDetail.url == "string" && requestDetail.url.match(".js") && responseDetail.response.header['Content-Type'] && responseDetail.response.header['Content-Type'].match("javascript")){
let newResponse= responseDetail.response;
let body = newResponse.body.toString();
try{
let newBody = handleCode.handleJsCode(body)
newResponse.body = newBody
}catch(err){
console.log("解析js文件错误:",err,requestDetail.url)
return null
}
return {response:newResponse}
}
// 处理Html文件
if (typeof requestDetail.url == "string" && responseDetail.response.header['Content-Type'] && responseDetail.response.header['Content-Type'].match("text/html")){
let newResponse= responseDetail.response;
let body = newResponse.body.toString();
let newBody = handleCode.handleHtmlCode(body)
newResponse.body = newBody
return {response:newResponse}
}
return {
response: responseDetail.response
}
}
module.exports.astHook = astHook