configurePurchasesInjection function

Future<void> configurePurchasesInjection({
  1. required AppEnvironment environment,
  2. required InAppPurchasesConfig purchasesConfig,
})

Implementation

Future<void> configurePurchasesInjection({
  required AppEnvironment environment,
  required InAppPurchasesConfig purchasesConfig,
}) async {
  if (!getItPurchases.isRegistered<InAppPurchasesConfig>()) {
    getItPurchases.registerSingleton<InAppPurchasesConfig>(purchasesConfig);
  }

  if (!getItPurchases.isRegistered<InAppPurchasesFacade>()) {
    if (AppEnvironment.test != environment) {
      getItPurchases.registerSingleton<InAppPurchasesFacade>(InAppPurchasesFacadeImpl());
    }
  }

  if (!getItPurchases.isRegistered<PurchaseService>()) {
    getItPurchases.registerSingletonAsync<PurchaseService>(
      () async {
        return PurchaseServiceImpl(
          httpClient: getItPurchases(),
          config: purchasesConfig,
        );
      },
      dependsOn: [
        if (AppEnvironment.test != environment) IHttpClient,
      ],
    );
  }

  await getItPurchases.isReady<PurchaseService>();
}