From 2cc85c64f1c64a2dbaeae276a3e2ca8420de76b7 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 18:09:58 +0800
Subject: [PATCH] 上报转运调试
---
node_modules/ajv/lib/vocabularies/validation/pattern.ts | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/node_modules/ajv/lib/vocabularies/validation/pattern.ts b/node_modules/ajv/lib/vocabularies/validation/pattern.ts
index 7b27b7d..bb0203b 100644
--- a/node_modules/ajv/lib/vocabularies/validation/pattern.ts
+++ b/node_modules/ajv/lib/vocabularies/validation/pattern.ts
@@ -1,6 +1,7 @@
import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from "../../types"
import type {KeywordCxt} from "../../compile/validate"
import {usePattern} from "../code"
+import {useFunc} from "../../compile/util"
import {_, str} from "../../compile/codegen"
export type PatternError = ErrorObject<"pattern", {pattern: string}, string | {$data: string}>
@@ -17,11 +18,21 @@
$data: true,
error,
code(cxt: KeywordCxt) {
- const {data, $data, schema, schemaCode, it} = cxt
- // TODO regexp should be wrapped in try/catchs
+ const {gen, data, $data, schema, schemaCode, it} = cxt
const u = it.opts.unicodeRegExp ? "u" : ""
- const regExp = $data ? _`(new RegExp(${schemaCode}, ${u}))` : usePattern(cxt, schema)
- cxt.fail$data(_`!${regExp}.test(${data})`)
+ if ($data) {
+ const {regExp} = it.opts.code
+ const regExpCode = regExp.code === "new RegExp" ? _`new RegExp` : useFunc(gen, regExp)
+ const valid = gen.let("valid")
+ gen.try(
+ () => gen.assign(valid, _`${regExpCode}(${schemaCode}, ${u}).test(${data})`),
+ () => gen.assign(valid, false)
+ )
+ cxt.fail$data(_`!${valid}`)
+ } else {
+ const regExp = usePattern(cxt, schema)
+ cxt.fail$data(_`!${regExp}.test(${data})`)
+ }
},
}
--
Gitblit v1.9.3