From deff0c0f49672f969d4e7602e25b643b7c3c5223 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Thu, 2 Oct 2025 14:05:59 -0400 Subject: [PATCH] fix lint errors about use of console and new() cache --- packages/backend/src/boot/master.ts | 24 +++++++++---------- .../src/core/CacheManagementService.ts | 3 +++ packages/backend/src/misc/QuantumKVCache.ts | 2 ++ packages/backend/src/misc/cache.ts | 7 +++++- packages/backend/src/misc/i18n.ts | 14 ++++++++--- 5 files changed, 34 insertions(+), 16 deletions(-) diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts index 607e8de340..cd7a31de17 100644 --- a/packages/backend/src/boot/master.ts +++ b/packages/backend/src/boot/master.ts @@ -33,21 +33,21 @@ const themeColor = chalk.hex('#86b300'); function greet() { if (!envOption.quiet) { //#region Misskey logo - console.log(themeColor(' _____ _ _ ')); - console.log(themeColor('/ ___| | | | ')); - console.log(themeColor('\\ `--.| |__ __ _ _ __| | _____ _ _ ')); - console.log(themeColor(' `--. \\ \'_ \\ / _` | \'__| |/ / _ \\ | | |')); - console.log(themeColor('/\\__/ / | | | (_| | | | < __/ |_| |')); - console.log(themeColor('\\____/|_| |_|\\__,_|_| |_|\\_\\___|\\__, |')); - console.log(themeColor(' __/ |')); - console.log(themeColor(' |___/ ')); + logger.info(themeColor(' _____ _ _ ')); + logger.info(themeColor('/ ___| | | | ')); + logger.info(themeColor('\\ `--.| |__ __ _ _ __| | _____ _ _ ')); + logger.info(themeColor(' `--. \\ \'_ \\ / _` | \'__| |/ / _ \\ | | |')); + logger.info(themeColor('/\\__/ / | | | (_| | | | < __/ |_| |')); + logger.info(themeColor('\\____/|_| |_|\\__,_|_| |_|\\_\\___|\\__, |')); + logger.info(themeColor(' __/ |')); + logger.info(themeColor(' |___/ ')); //#endregion - console.log(' Sharkey is an open-source decentralized microblogging platform.'); - console.log(chalk.rgb(255, 136, 0)(' If you like Sharkey, please donate to support development. https://opencollective.com/sharkey')); + logger.info(' Sharkey is an open-source decentralized microblogging platform.'); + logger.info(chalk.rgb(255, 136, 0)(' If you like Sharkey, please donate to support development. https://opencollective.com/sharkey')); - console.log(''); - console.log(chalkTemplate`--- ${os.hostname()} {gray (PID: ${process.pid.toString()})} ---`); + logger.info(''); + logger.info(chalkTemplate`--- ${os.hostname()} {gray (PID: ${process.pid.toString()})} ---`); } bootLogger.info('Welcome to Sharkey!'); diff --git a/packages/backend/src/core/CacheManagementService.ts b/packages/backend/src/core/CacheManagementService.ts index 180572e300..5addab4116 100644 --- a/packages/backend/src/core/CacheManagementService.ts +++ b/packages/backend/src/core/CacheManagementService.ts @@ -19,6 +19,9 @@ import { DI } from '@/di-symbols.js'; import { TimeService } from '@/core/TimeService.js'; import { InternalEventService } from '@/core/InternalEventService.js'; +// This is the one place that's *supposed* to new() up caches. +/* eslint-disable no-restricted-syntax */ + export type ManagedMemoryKVCache = Managed>; export type ManagedMemorySingleCache = Managed>; export type ManagedRedisKVCache = Managed>; diff --git a/packages/backend/src/misc/QuantumKVCache.ts b/packages/backend/src/misc/QuantumKVCache.ts index 7791f56e64..de5863f7ec 100644 --- a/packages/backend/src/misc/QuantumKVCache.ts +++ b/packages/backend/src/misc/QuantumKVCache.ts @@ -75,6 +75,8 @@ export class QuantumKVCache implements Iterable, ) { + // OK: we forward all management calls to the inner cache. + // eslint-disable-next-line no-restricted-syntax this.memoryCache = new MemoryKVCache(opts.lifetime, services); this.fetcher = opts.fetcher; this.bulkFetcher = opts.bulkFetcher; diff --git a/packages/backend/src/misc/cache.ts b/packages/backend/src/misc/cache.ts index 4066edda0d..098ac0cba1 100644 --- a/packages/backend/src/misc/cache.ts +++ b/packages/backend/src/misc/cache.ts @@ -37,6 +37,8 @@ export class RedisKVCache { ) { this.redisClient = services.redisClient; this.lifetime = opts.lifetime; + // OK: we forward all management calls to the inner cache. + // eslint-disable-next-line no-restricted-syntax this.memoryCache = new MemoryKVCache(opts.memoryCacheLifetime, services); this.fetcher = opts.fetcher ?? (() => { throw new Error('fetch not supported - use get/set directly'); }); this.toRedisConverter = opts.toRedisConverter ?? ((value) => JSON.stringify(value)); @@ -150,6 +152,8 @@ export class RedisSingleCache { ) { this.redisClient = services.redisClient; this.lifetime = opts.lifetime; + // OK: we forward all management calls to the inner cache. + // eslint-disable-next-line no-restricted-syntax this.memoryCache = new MemorySingleCache(opts.memoryCacheLifetime, services); this.fetcher = opts.fetcher ?? (() => { throw new Error('fetch not supported - use get/set directly'); }); @@ -198,7 +202,7 @@ export class RedisSingleCache { @bindThis public clear(): void { - this.memoryCache.delete(); + this.memoryCache.clear(); } /** @@ -233,6 +237,7 @@ export class RedisSingleCache { @bindThis public dispose(): void { this.clear(); + this.memoryCache.dispose(); } } diff --git a/packages/backend/src/misc/i18n.ts b/packages/backend/src/misc/i18n.ts index 6cbbdef74c..e32c1a028b 100644 --- a/packages/backend/src/misc/i18n.ts +++ b/packages/backend/src/misc/i18n.ts @@ -3,10 +3,18 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import { LoggerService } from '@/core/LoggerService.js'; +import type Logger from '@/logger.js'; + export class I18n> { + private readonly logger: Logger; public locale: T; - constructor(locale: T) { + constructor( + loggerService: LoggerService, + locale: T, + ) { + this.logger = loggerService.getLogger('i18n'); this.locale = locale; //#region BIND @@ -26,8 +34,8 @@ export class I18n> { } } return str; - } catch (e) { - console.warn(`missing localization '${key}'`); + } catch { + this.logger.warn(`missing localization '${key}'`); return key; } }