From 9b5b3a4d1b887ff29ce79f1639886f3c69def54f Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 18 May 2023 18:18:25 +0900 Subject: [PATCH] perf(backend): pre-compile regexp --- packages/backend/src/core/ReactionService.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/core/ReactionService.ts b/packages/backend/src/core/ReactionService.ts index a274b19e4..2184cfeb4 100644 --- a/packages/backend/src/core/ReactionService.ts +++ b/packages/backend/src/core/ReactionService.ts @@ -54,6 +54,9 @@ type DecodedReaction = { host?: string | null; }; +const isCustomEmojiRegexp = /^:([\w+-]+)(?:@\.)?:$/; +const decodeCustomEmojiRegexp = /^:([\w+-]+)(?:@([\w.-]+))?:$/; + @Injectable() export class ReactionService { constructor( @@ -306,7 +309,7 @@ export class ReactionService { return unicode.match('\u200d') ? unicode : unicode.replace(/\ufe0f/g, ''); } - const custom = reaction.match(/^:([\w+-]+)(?:@\.)?:$/); + const custom = reaction.match(isCustomEmojiRegexp); if (custom) { const name = custom[1]; const emoji = reacterHost == null @@ -324,7 +327,7 @@ export class ReactionService { @bindThis public decodeReaction(str: string): DecodedReaction { - const custom = str.match(/^:([\w+-]+)(?:@([\w.-]+))?:$/); + const custom = str.match(decodeCustomEmojiRegexp); if (custom) { const name = custom[1];