1+ /**
2+ * 用于测试是否命中断点的工具类,支持对请求和响应的断点测试。
3+ */
14class 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
178182module . exports = {
179183 DebuggerTester
180- }
181-
184+ } ;
0 commit comments