Skip to content

Commit 2a33b15

Browse files
committed
chore: simplify regex flags
1 parent d218336 commit 2a33b15

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/builders.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,21 @@ export function buildPattern(sequence: RegexSequence): string {
2525
return encode(sequence).pattern;
2626
}
2727

28-
function encodeFlags(flags: RegexFlags): string {
29-
let result = '';
30-
31-
if (flags.global) result += 'g';
32-
if (flags.ignoreCase) result += 'i';
33-
if (flags.multiline) result += 'm';
34-
if (flags.hasIndices) result += 'd';
35-
if (flags.dotAll) result += 's';
36-
if (flags.sticky) result += 'y';
37-
if (flags.unicode) result += 'u';
28+
const flagsMap: Record<keyof RegexFlags, string> = {
29+
global: 'g',
30+
ignoreCase: 'i',
31+
multiline: 'm',
32+
hasIndices: 'd',
33+
dotAll: 's',
34+
sticky: 'y',
35+
unicode: 'u',
36+
};
3837

39-
return result;
38+
function encodeFlags(flags: RegexFlags): string {
39+
return Object.entries(flags)
40+
.filter(([, value]) => value)
41+
.map(([key]) => flagsMap[key as keyof RegexFlags])
42+
.join('');
4043
}
4144

4245
// Matches unicode mode patterns: \u{...}, \p{...}, \P{...}, but avoids valid \\u{...}, etc

0 commit comments

Comments
 (0)