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
@@ -18,6 +18,7 @@ import { PaymentApi, paymentApi } from "@/data/services/api";
import { PaymentPlansStorage } from "@/data/storage/payment";
import type { IPaymentRepository } from "@/data/repositories/interfaces";
import { Result } from "@/utils/result";
import { createLazySingleton } from "./lazy_singleton";
export class PaymentRepository implements IPaymentRepository {
constructor(private readonly api: PaymentApi) {}
@@ -83,8 +84,10 @@ export class PaymentRepository implements IPaymentRepository {
}
}
/** 全局单例。 */
export const paymentRepository = new PaymentRepository(paymentApi);
/** 全局单例。 */
export const getPaymentRepository = createLazySingleton<IPaymentRepository>(
() => new PaymentRepository(paymentApi),
);
export function isVipPaymentPlan(plan: PaymentPlan): boolean {
return plan.vipDays !== null;