Skip to content

Commit 0dea2aa

Browse files
committed
feat: 完善debugger的注释
1 parent 9799e2a commit 0dea2aa

File tree

2 files changed

+77
-71
lines changed

2 files changed

+77
-71
lines changed

src/debugger/debugger-tester.js

Lines changed: 56 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,40 @@
1+
/**
2+
* 用于测试是否命中断点的工具类,支持对请求和响应的断点测试。
3+
*/
14
class DebuggerTester {
25

36
/**
7+
* 测试是否命中断点。
48
*
5-
* 测试是否命中断点
6-
*
7-
* @param globalConfig
8-
* @param debuggerConfig
9-
* @param scriptContext {ScriptContext}
10-
* @return {boolean}
9+
* @param {Object} globalConfig - 全局配置对象,包含断点的全局设置。
10+
* @param {Object} debuggerConfig - 断点配置对象,包含断点的具体设置。
11+
* @param {ScriptContext} scriptContext - 脚本上下文对象,包含请求和响应的详细信息。
12+
* @return {boolean} - 如果命中断点则返回 true,否则返回 false。
1113
*/
1214
test(globalConfig, debuggerConfig, scriptContext) {
1315

14-
// 首先URL要能够匹配得上
16+
// 首先 URL 要能够匹配得上
1517
if (!this.testUrlPattern(debuggerConfig.urlPatternType, debuggerConfig.urlPattern, scriptContext.url)) {
1618
return false;
1719
}
1820

19-
// 支持忽略js文件请求
21+
// 支持忽略 .js 文件请求
2022
if (globalConfig.isIgnoreJsSuffixRequest && scriptContext.isJsSuffixRequest()) {
2123
return false;
2224
}
2325

24-
// 忽略不是jsonp的请求
26+
// 忽略不是 JSONP 的请求
2527
if (globalConfig.isIgnoreNotJsonpRequest && !scriptContext.isJsonp()) {
2628
return false;
2729
}
2830

2931
// 请求断点
3032
if (debuggerConfig.enableRequestDebugger) {
3133
// 把一些相关的上下文赋值到变量方便断点命中这里的时候观察
32-
// _scriptContext中存放的是与当前的script请求相关的一些上下文信息
34+
// _scriptContext 中存放的是与当前的 script 请求相关的一些上下文信息
3335
const _scriptContext = scriptContext;
34-
const humanReadableScriptInformation = scriptContext.toHumanReadable()
35-
debugger;
36+
const humanReadableScriptInformation = scriptContext.toHumanReadable();
37+
debugger; // 断点调试
3638
}
3739

3840
return true;
@@ -41,12 +43,12 @@ class DebuggerTester {
4143
// ---------------------------------------------------------------------------------------------------------------------
4244

4345
/**
44-
* 测试请求的URL是否匹配
46+
* 测试请求的 URL 是否匹配断点的 URL 模式。
4547
*
46-
* @param urlPatternType 界面上配置的匹配类型
47-
* @param urlPattern 界面配置的匹配类型对应的值
48-
* @param url {String} 要测试匹配的URL
49-
* @return {boolean} 是否匹配得上
48+
* @param {string} urlPatternType - URL 匹配模式类型(例如:"equals-string"、"contains-string" 等)。
49+
* @param {string | RegExp} urlPattern - URL 匹配模式的值。
50+
* @param {string} url - 要测试匹配的 URL。
51+
* @return {boolean} - 如果 URL 匹配模式则返回 true,否则返回 false。
5052
*/
5153
testUrlPattern(urlPatternType, urlPattern, url) {
5254

@@ -58,14 +60,6 @@ class DebuggerTester {
5860
return true;
5961
}
6062

61-
// if (typeof urlPattern === "string") {
62-
// return urlPattern.indexOf(url) !== -1;
63-
// } else if (urlPattern instanceof RegExp) {
64-
// return urlPattern.test(url);
65-
// } else {
66-
// return false;
67-
// }
68-
6963
switch (urlPatternType) {
7064
case "equals-string":
7165
return this.testUrlPatternForEquals(urlPattern, url);
@@ -82,67 +76,77 @@ class DebuggerTester {
8276
}
8377

8478
/**
85-
* 完全匹配
79+
* 测试 URL 是否完全匹配给定的模式。
8680
*
87-
* @param urlPattern
88-
* @param url
89-
* @return {*}
81+
* @param {string} urlPattern - 要匹配的 URL 模式。
82+
* @param {string} url - 要测试的 URL。
83+
* @return {boolean} - 如果 URL 完全匹配模式则返回 true,否则返回 false。
9084
*/
9185
testUrlPatternForEquals(urlPattern, url) {
92-
return url.equals(urlPattern);
86+
return url === urlPattern;
9387
}
9488

9589
/**
96-
* 包含给定的关键字
90+
* 测试 URL 是否包含给定的关键字。
9791
*
98-
* @param urlPattern
99-
* @param url
100-
* @return {boolean}
92+
* @param {string} urlPattern - 要匹配的关键字。
93+
* @param {string} url - 要测试的 URL。
94+
* @return {boolean} - 如果 URL 包含关键字则返回 true,否则返回 false。
10195
*/
10296
testUrlPatternForContains(urlPattern, url) {
10397
return url.indexOf(urlPattern) !== -1;
10498
}
10599

106100
/**
107-
* 正则表达式方式匹配
101+
* 测试 URL 是否匹配给定的正则表达式。
108102
*
109-
* @param urlPattern
110-
* @param url
111-
* @return {boolean}
103+
* @param {string} urlPattern - 要匹配的正则表达式。
104+
* @param {string} url - 要测试的 URL。
105+
* @return {boolean} - 如果 URL 匹配正则表达式则返回 true,否则返回 false。
112106
*/
113107
testUrlPatternForMatchRegexp(urlPattern, url) {
114108
try {
115109
return new RegExp(urlPattern).test(url);
116110
} catch (e) {
117111
console.error(e);
112+
return false;
118113
}
119114
}
120115

121116
/**
122-
* 直接匹配所有
123-
* @param urlPattern
124-
* @param url
125-
* @return {boolean}
117+
* 匹配所有 URL(始终返回 true)。
118+
*
119+
* @param {string} urlPattern - 忽略此参数。
120+
* @param {string} url - 忽略此参数。
121+
* @return {boolean} - 始终返回 true。
126122
*/
127123
testUrlPatternForMatchAll(urlPattern, url) {
128124
return true;
129125
}
130126

131127
// ---------------------------------------------------------------------------------------------------------------------
132128

129+
/**
130+
* 测试响应是否命中断点。
131+
*
132+
* @param {Object} globalConfig - 全局配置对象,包含断点的全局设置。
133+
* @param {Object} debuggerConfig - 断点配置对象,包含断点的具体设置。
134+
* @param {ScriptContext} scriptContext - 脚本上下文对象,包含请求和响应的详细信息。
135+
* @return {boolean} - 如果命中断点则返回 true,否则返回 false。
136+
*/
133137
testForResponse(globalConfig, debuggerConfig, scriptContext) {
134138

135-
// 首先URL要能够匹配得上
139+
// 首先 URL 要能够匹配得上
136140
if (!this.testUrlPattern(debuggerConfig.urlPatternType, debuggerConfig.urlPattern, scriptContext.url)) {
137141
return false;
138142
}
139143

140-
// 支持忽略js文件请求
144+
// 支持忽略 .js 文件请求
141145
if (globalConfig.isIgnoreJsSuffixRequest && scriptContext.isJsSuffixRequest()) {
142146
return false;
143147
}
144148

145-
// 忽略不是jsonp的请求
149+
// 忽略不是 JSONP 的请求
146150
if (globalConfig.isIgnoreNotJsonpRequest && !scriptContext.isJsonp()) {
147151
return false;
148152
}
@@ -152,20 +156,20 @@ class DebuggerTester {
152156
}
153157

154158
/**
155-
* 判断是否需要打印到控制台上
159+
* 判断是否需要将信息打印到控制台。
156160
*
157-
* @param globalConfig
158-
* @param scriptContext
159-
* @return {boolean}
161+
* @param {Object} globalConfig - 全局配置对象,包含断点的全局设置。
162+
* @param {ScriptContext} scriptContext - 脚本上下文对象,包含请求和响应的详细信息。
163+
* @return {boolean} - 如果需要打印到控制台则返回 true,否则返回 false。
160164
*/
161165
isNeedPrintToConsole(globalConfig, scriptContext) {
162166

163-
// 忽略js文件请求
167+
// 忽略 .js 文件请求
164168
if (globalConfig.isIgnoreJsSuffixRequest && scriptContext.isJsSuffixRequest()) {
165169
return false;
166170
}
167171

168-
// 忽略不是jsonp的请求
172+
// 忽略不是 JSONP 的请求
169173
if (globalConfig.isIgnoreNotJsonpRequest && !scriptContext.isJsonp()) {
170174
return false;
171175
}
@@ -177,5 +181,4 @@ class DebuggerTester {
177181

178182
module.exports = {
179183
DebuggerTester
180-
}
181-
184+
};

src/debugger/debugger.js

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
11
/**
2-
* 表示一个jsonp的条件断点
2+
* 表示一个 JSONP 的条件断点,用于在请求或响应处理时中断执行。
33
*/
44
class Debugger {
55

66
/**
7-
* 创建一个断点
7+
* 构造函数,创建一个 Debugger 实例。
88
*
9-
* @param id {string} 断点的唯一标识
10-
* @param enable {Boolean} 此断点是否处于启用状态
11-
* @param urlPatternType {String}
12-
* @param urlPattern {String | RegExp} 用于与script类型的请求的URL做匹配进入断点,只有这一个是必须指定的
13-
* @param enableRequestDebugger {Boolean | null} 是否开启请求断点,开启请求断点会在请求发送之前进入断点,不指定的话默认开启
14-
* @param enableResponseDebugger {Boolean | null} 是否开启响应断点,开启响应断点会在响应处理之前进入断点,不指定的话默认开启
15-
* @param callbackFunctionParamName {String | null} 传递jsonp回调函数名字的参数,比如 "callback",如果不指定的话会自动推测
16-
* @param comment
9+
* @param {string} id - 断点的唯一标识
10+
* @param {boolean} enable - 此断点是否处于启用状态
11+
* @param {string} urlPatternType - URL 匹配模式类型(例如:字符串或正则表达式)。
12+
* @param {string | RegExp} urlPattern - 用于与 script 类型请求的 URL 做匹配,只有这个是必须指定的。
13+
* @param {boolean} [enableRequestDebugger=true] - 是否开启请求断点。开启后会在请求发送之前进入断点。如果不指定,默认开启。
14+
* @param {boolean} [enableResponseDebugger=true] - 是否开启响应断点。开启后会在响应处理之前进入断点。如果不指定,默认开启。
15+
* @param {string | null} [callbackFunctionParamName=null] - 传递 JSONP 回调函数名称的参数(例如:"callback")。如果不指定,会自动推测。
16+
* @param {string | null} [comment=null] - 断点的注释或描述信息。
1717
*/
18-
constructor(id, enable,
19-
urlPatternType,
20-
urlPattern,
21-
enableRequestDebugger = true,
22-
enableResponseDebugger = true,
23-
callbackFunctionParamName,
24-
comment) {
18+
constructor(
19+
id,
20+
enable,
21+
urlPatternType,
22+
urlPattern,
23+
enableRequestDebugger = true,
24+
enableResponseDebugger = true,
25+
callbackFunctionParamName = null,
26+
comment = null
27+
) {
2528
this.id = id;
2629
this.enable = enable;
2730
this.urlPatternType = urlPatternType;
@@ -36,4 +39,4 @@ class Debugger {
3639

3740
module.exports = {
3841
Debugger
39-
}
42+
};

0 commit comments

Comments
 (0)