summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/NotificationService.ts
diff options
context:
space:
mode:
authorKagami Sascha Rosylight <saschanaz@outlook.com>2024-01-08 04:28:13 +0100
committerGitHub <noreply@github.com>2024-01-08 12:28:13 +0900
commit0c2118e9630939eb709c84049bdc8e0fbae8ec11 (patch)
tree46fcbd78dfabc5e7062db6826207f3fc34c93d61 /packages/backend/src/core/NotificationService.ts
parentrefactor(frontend): extract game engine from vue component (diff)
downloadsharkey-0c2118e9630939eb709c84049bdc8e0fbae8ec11.tar.gz
sharkey-0c2118e9630939eb709c84049bdc8e0fbae8ec11.tar.bz2
sharkey-0c2118e9630939eb709c84049bdc8e0fbae8ec11.zip
refactor: make sure promises are settled before app shutdown (#12942)
👍
Diffstat (limited to 'packages/backend/src/core/NotificationService.ts')
-rw-r--r--packages/backend/src/core/NotificationService.ts14
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/backend/src/core/NotificationService.ts b/packages/backend/src/core/NotificationService.ts
index ad7be83e5b..765fcae063 100644
--- a/packages/backend/src/core/NotificationService.ts
+++ b/packages/backend/src/core/NotificationService.ts
@@ -20,6 +20,7 @@ import { CacheService } from '@/core/CacheService.js';
import type { Config } from '@/config.js';
import { UserListService } from '@/core/UserListService.js';
import type { FilterUnionByProperty } from '@/types.js';
+import { trackPromise } from '@/misc/promise-tracker.js';
@Injectable()
export class NotificationService implements OnApplicationShutdown {
@@ -74,7 +75,18 @@ export class NotificationService implements OnApplicationShutdown {
}
@bindThis
- public async createNotification<T extends MiNotification['type']>(
+ public createNotification<T extends MiNotification['type']>(
+ notifieeId: MiUser['id'],
+ type: T,
+ data: Omit<FilterUnionByProperty<MiNotification, 'type', T>, 'type' | 'id' | 'createdAt' | 'notifierId'>,
+ notifierId?: MiUser['id'] | null,
+ ) {
+ trackPromise(
+ this.#createNotificationInternal(notifieeId, type, data, notifierId),
+ );
+ }
+
+ async #createNotificationInternal<T extends MiNotification['type']>(
notifieeId: MiUser['id'],
type: T,
data: Omit<FilterUnionByProperty<MiNotification, 'type', T>, 'type' | 'id' | 'createdAt' | 'notifierId'>,