From ef657aa5700794df7ce7a6d772b079282fe7a24a Mon Sep 17 00:00:00 2001 From: Eevho Date: Wed, 16 Apr 2025 18:34:02 +0800 Subject: [PATCH] fix: update 'or ' to support variable parameter use --- src/core/internal.ts | 2 +- test/inputs.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/internal.ts b/src/core/internal.ts index 1f9bc87a..26a0b8c5 100644 --- a/src/core/internal.ts +++ b/src/core/internal.ts @@ -154,7 +154,7 @@ export function createInput< and: Object.assign((...inputs: InputSource[]) => createInput(`${s}${exactly(...inputs)}`), { referenceTo: (groupName: string) => createInput(`${s}\\k<${groupName}>`), }), - or: (...inputs) => createInput(`(?:${s}|${exactly(...inputs)})`), + or: (...inputs) => createInput(`(?:${s}|${inputs.map(v => exactly(v)).join('|')})`), after: (...input) => createInput(`(?<=${exactly(...input)})${s}`), before: (...input) => createInput(`${s}(?=${exactly(...input)})`), notAfter: (...input) => createInput(`(? { const multi = multichar.or('foo', input.groupedAs('groupName'), exactly('bar').or(test)) const regexp2 = new RegExp(multi as any) expect(regexp2).toMatchInlineSnapshot( - '/\\(\\?:ab\\|foo\\(\\?\\\\\\?\\)\\(\\?:bar\\|test\\\\\\.js\\)\\)/', + '/\\(\\?:ab\\|foo\\|\\(\\?\\\\\\?\\)\\|\\(\\?:bar\\|test\\\\\\.js\\)\\)/', ) expectTypeOf( extractRegExp(multi),