diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2023-04-09 09:52:19 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-09 09:52:19 +0900 |
| commit | 9feb6b0f5b07151bcd129445f01941140c0cc29d (patch) | |
| tree | 5d39fdc302dc47a78fb018edab2a59d422257460 | |
| parent | fix(frontend): ユーザープレビューが表示されない問題を修正 (diff) | |
| download | sharkey-9feb6b0f5b07151bcd129445f01941140c0cc29d.tar.gz sharkey-9feb6b0f5b07151bcd129445f01941140c0cc29d.tar.bz2 sharkey-9feb6b0f5b07151bcd129445f01941140c0cc29d.zip | |
fix(server): リアクションできない問題をとりあえず修正 (#10529)
* fix(server): リアクションできない問題をとりあえず修正
Fix #10502
* Update packages/backend/src/core/CustomEmojiService.ts
---------
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
| -rw-r--r-- | packages/backend/src/core/CustomEmojiService.ts | 5 | ||||
| -rw-r--r-- | packages/backend/src/misc/cache.ts | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/packages/backend/src/core/CustomEmojiService.ts b/packages/backend/src/core/CustomEmojiService.ts index 604a94707f..0a7ee4b9c9 100644 --- a/packages/backend/src/core/CustomEmojiService.ts +++ b/packages/backend/src/core/CustomEmojiService.ts @@ -44,7 +44,10 @@ export class CustomEmojiService { memoryCacheLifetime: 1000 * 60 * 3, // 3m fetcher: () => this.emojisRepository.find({ where: { host: IsNull() } }).then(emojis => new Map(emojis.map(emoji => [emoji.name, emoji]))), toRedisConverter: (value) => JSON.stringify(value.values()), - fromRedisConverter: (value) => new Map(JSON.parse(value).map((x: Emoji) => [x.name, x])), // TODO: Date型の変換 + fromRedisConverter: (value) => { + if (!Array.isArray(JSON.parse(value))) return undefined; + return new Map(JSON.parse(value).map((x: Emoji) => [x.name, x])); + }, // TODO: Date型の変換 }); } diff --git a/packages/backend/src/misc/cache.ts b/packages/backend/src/misc/cache.ts index d35414acf7..a4abd4f878 100644 --- a/packages/backend/src/misc/cache.ts +++ b/packages/backend/src/misc/cache.ts @@ -8,7 +8,7 @@ export class RedisKVCache<T> { private memoryCache: MemoryKVCache<T>; private fetcher: (key: string) => Promise<T>; private toRedisConverter: (value: T) => string; - private fromRedisConverter: (value: string) => T; + private fromRedisConverter: (value: string) => T | undefined; // undefined means no cache constructor(redisClient: RedisKVCache<T>['redisClient'], name: RedisKVCache<T>['name'], opts: { lifetime: RedisKVCache<T>['lifetime']; @@ -92,7 +92,7 @@ export class RedisSingleCache<T> { private memoryCache: MemorySingleCache<T>; private fetcher: () => Promise<T>; private toRedisConverter: (value: T) => string; - private fromRedisConverter: (value: string) => T; + private fromRedisConverter: (value: string) => T | undefined; // undefined means no cache constructor(redisClient: RedisSingleCache<T>['redisClient'], name: RedisSingleCache<T>['name'], opts: { lifetime: RedisSingleCache<T>['lifetime']; |