From 8f41dfec2e27c35809f97399cee7e4ad6be21056 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 22 Mar 2021 12:41:33 +0900 Subject: perf(server): Reduce database query --- src/models/repositories/note.ts | 4 +++- src/models/repositories/notification.ts | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src/models') diff --git a/src/models/repositories/note.ts b/src/models/repositories/note.ts index 354ea4dc70..73e18f6c5b 100644 --- a/src/models/repositories/note.ts +++ b/src/models/repositories/note.ts @@ -8,7 +8,7 @@ import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '. import { toString } from '../../mfm/to-string'; import { parse } from '../../mfm/parse'; import { NoteReaction } from '../entities/note-reaction'; -import { populateEmojis } from '../../misc/populate-emojis'; +import { aggregateNoteEmojis, populateEmojis, prefetchEmojis } from '../../misc/populate-emojis'; export type PackedNote = SchemaType; @@ -259,6 +259,8 @@ export class NoteRepository extends Repository { } } + await prefetchEmojis(aggregateNoteEmojis(notes)); + return await Promise.all(notes.map(n => this.pack(n, me, { ...options, _hint_: { diff --git a/src/models/repositories/notification.ts b/src/models/repositories/notification.ts index 4f6e797ef9..83fe11d5f7 100644 --- a/src/models/repositories/notification.ts +++ b/src/models/repositories/notification.ts @@ -6,6 +6,7 @@ import { SchemaType } from '../../misc/schema'; import { Note } from '../entities/note'; import { NoteReaction } from '../entities/note-reaction'; import { User } from '../entities/user'; +import { aggregateNoteEmojis, prefetchEmojis } from '../../misc/populate-emojis'; export type PackedNotification = SchemaType; @@ -98,6 +99,8 @@ export class NotificationRepository extends Repository { myReactionsMap.set(target, myReactions.find(reaction => reaction.noteId === target) || null); } + await prefetchEmojis(aggregateNoteEmojis(notes)); + return await Promise.all(notifications.map(x => this.pack(x, { _hintForEachNotes_: { myReactions: myReactionsMap -- cgit v1.2.3-freya