feat: implement lazy singleton pattern for repository instances and update related imports

This commit is contained in:
2026-06-29 17:25:41 +08:00
parent 96612da5c0
commit 0bae53bfba
14 changed files with 69 additions and 74 deletions
+5 -2
View File
@@ -9,6 +9,7 @@ import { MetricsApi, metricsApi } from "@/data/services/api";
import { AppEvent, PwaEvent } from "@/data/dto/metrics";
import { Result } from "@/utils";
import type { IMetricsRepository } from "@/data/repositories/interfaces";
import { createLazySingleton } from "./lazy_singleton";
export class MetricsRepository implements IMetricsRepository {
constructor(private readonly api: MetricsApi) {}
@@ -56,5 +57,7 @@ export class MetricsRepository implements IMetricsRepository {
}
}
/** 全局单例。 */
export const metricsRepository = new MetricsRepository(metricsApi);
/** 全局单例。 */
export const getMetricsRepository = createLazySingleton<IMetricsRepository>(
() => new MetricsRepository(metricsApi),
);