Skip to content

Commit d80b5cb

Browse files
perf: 创建正则缓存
1 parent b173c07 commit d80b5cb

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

packages/mitmproxy/src/utils/util.match.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,25 @@ const lodash = require('lodash')
22
const log = require('./util.log.server')
33
const mergeApi = require('@docmirror/dev-sidecar/src/merge')
44

5+
const urlRegexpCache = new Map()
6+
57
function isMatched (url, regexp) {
68
if (regexp === '.*' || regexp === '*' || regexp === 'true' || regexp === true) {
79
return [url]
810
}
911

1012
try {
11-
let urlRegexp = regexp
12-
if (regexp[0] === '*' || regexp[0] === '?' || regexp[0] === '+') {
13-
urlRegexp = `.${regexp}`
13+
let compiled = urlRegexpCache.get(regexp)
14+
if (!compiled) {
15+
let urlRegexp = regexp
16+
if (regexp[0] === '*' || regexp[0] === '?' || regexp[0] === '+') {
17+
urlRegexp = `.${regexp}`
18+
}
19+
compiled = new RegExp(urlRegexp)
20+
urlRegexpCache.set(regexp, compiled)
1421
}
15-
return url.match(urlRegexp)
22+
23+
return url.match(compiled)
1624
} catch {
1725
log.error('匹配串有问题:', regexp)
1826
return null

0 commit comments

Comments
 (0)