1
1
mirror of https://github.com/kokonect-link/cherrypick synced 2024-10-31 07:11:47 +09:00

perf(backend): pre-compile regexp

This commit is contained in:
syuilo 2023-05-18 18:18:25 +09:00
parent 6173cebdca
commit 9b5b3a4d1b

View File

@ -54,6 +54,9 @@ type DecodedReaction = {
host?: string | null; host?: string | null;
}; };
const isCustomEmojiRegexp = /^:([\w+-]+)(?:@\.)?:$/;
const decodeCustomEmojiRegexp = /^:([\w+-]+)(?:@([\w.-]+))?:$/;
@Injectable() @Injectable()
export class ReactionService { export class ReactionService {
constructor( constructor(
@ -306,7 +309,7 @@ export class ReactionService {
return unicode.match('\u200d') ? unicode : unicode.replace(/\ufe0f/g, ''); return unicode.match('\u200d') ? unicode : unicode.replace(/\ufe0f/g, '');
} }
const custom = reaction.match(/^:([\w+-]+)(?:@\.)?:$/); const custom = reaction.match(isCustomEmojiRegexp);
if (custom) { if (custom) {
const name = custom[1]; const name = custom[1];
const emoji = reacterHost == null const emoji = reacterHost == null
@ -324,7 +327,7 @@ export class ReactionService {
@bindThis @bindThis
public decodeReaction(str: string): DecodedReaction { public decodeReaction(str: string): DecodedReaction {
const custom = str.match(/^:([\w+-]+)(?:@([\w.-]+))?:$/); const custom = str.match(decodeCustomEmojiRegexp);
if (custom) { if (custom) {
const name = custom[1]; const name = custom[1];