Skip to content

Commit 8916f19

Browse files
committed
refactor: - Remove repetition - make fieldRegex() add final $ to regexes
1 parent 4284e31 commit 8916f19

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/TaskSerializer/DefaultTaskSerializer.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,15 @@ export const taskIdRegex = /[a-zA-Z0-9-_]+/;
5656
export const taskIdSequenceRegex = new RegExp(taskIdRegex.source + '( *, *' + taskIdRegex.source + ' *)*');
5757

5858
function dateFieldRegex(symbols: string) {
59-
return fieldRegex(symbols, '(\\d{4}-\\d{2}-\\d{2})$');
59+
return fieldRegex(symbols, '(\\d{4}-\\d{2}-\\d{2})');
6060
}
6161

6262
function fieldRegex(symbols: string, valueRegexString: string) {
6363
let source = symbols;
6464
if (valueRegexString !== '') {
6565
source += ' *' + valueRegexString;
6666
}
67+
source += '$';
6768
return new RegExp(source, 'u');
6869
}
6970

@@ -95,17 +96,17 @@ export const DEFAULT_SYMBOLS: DefaultTaskSerializerSymbols = {
9596
// The following regex's end with `$` because they will be matched and
9697
// removed from the end until none are left.
9798
// \uFE0F? allows an optional Variant Selector 16 on emojis.
98-
priorityRegex: fieldRegex('([🔺⏫🔼🔽⏬])\uFE0F?$', ''),
99+
priorityRegex: fieldRegex('([🔺⏫🔼🔽⏬])\uFE0F?', ''),
99100
startDateRegex: dateFieldRegex('🛫'),
100101
createdDateRegex: dateFieldRegex('➕'),
101102
scheduledDateRegex: dateFieldRegex('[⏳⌛]'),
102103
dueDateRegex: dateFieldRegex('[📅📆🗓]'),
103104
doneDateRegex: dateFieldRegex('✅'),
104105
cancelledDateRegex: dateFieldRegex('❌'),
105-
recurrenceRegex: fieldRegex('🔁', '([a-zA-Z0-9, !]+)$'),
106-
onCompletionRegex: fieldRegex('🏁', '([a-zA-Z]+)$'),
107-
dependsOnRegex: fieldRegex('⛔\uFE0F?', '(' + taskIdSequenceRegex.source + ')$'),
108-
idRegex: fieldRegex('🆔', '(' + taskIdRegex.source + ')$'),
106+
recurrenceRegex: fieldRegex('🔁', '([a-zA-Z0-9, !]+)'),
107+
onCompletionRegex: fieldRegex('🏁', '([a-zA-Z]+)'),
108+
dependsOnRegex: fieldRegex('⛔\uFE0F?', '(' + taskIdSequenceRegex.source + ')'),
109+
idRegex: fieldRegex('🆔', '(' + taskIdRegex.source + ')'),
109110
},
110111
} as const;
111112

0 commit comments

Comments
 (0)