feat: implement lazy singleton pattern for repository instances and update related imports
This commit is contained in:
@@ -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),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user