UNPKG

@qonversion/react-native-sdk

Version:

Qonversion provides full in-app purchases infrastructure, so you do not need to build your own server for receipt validation. Implement in-app subscriptions, validate user receipts, check subscription status, and provide access to your app features and co

103 lines (92 loc) 3.72 kB
import {EntitlementsCacheLifetime, Environment, LaunchMode} from './dto/enums'; import type {EntitlementsUpdateListener} from './dto/EntitlementsUpdateListener'; import QonversionConfig from './QonversionConfig'; class QonversionConfigBuilder { private readonly projectKey: string; private readonly launchMode: LaunchMode; constructor(projectKey: string, launchMode: LaunchMode) { this.projectKey = projectKey; this.launchMode = launchMode; } private environment: Environment = Environment.PRODUCTION; private entitlementsCacheLifetime: EntitlementsCacheLifetime = EntitlementsCacheLifetime.MONTH; private entitlementsUpdateListener: EntitlementsUpdateListener | undefined = undefined; private proxyUrl: string | undefined = undefined; private kidsMode: boolean = false; /** * Set current application {@link Environment}. Used to distinguish sandbox and production users. * * @param environment current environment. * @return builder instance for chain calls. */ setEnvironment(environment: Environment): QonversionConfigBuilder { this.environment = environment; return this; } /** * Entitlements cache is used when there are problems with the Qonversion API * or internet connection. If so, Qonversion will return the last successfully loaded * entitlements. The current method allows you to configure how long that cache may be used. * The default value is {@link EntitlementsCacheLifetime.MONTH}. * * @param lifetime desired entitlements cache lifetime duration * @return builder instance for chain calls. */ setEntitlementsCacheLifetime(lifetime: EntitlementsCacheLifetime): QonversionConfigBuilder { this.entitlementsCacheLifetime = lifetime; return this; } /** * Provide a listener to be notified about asynchronous user entitlements updates. * * Make sure you provide this listener for being up-to-date with the user entitlements. * Else you can lose some important updates. Also, please, consider that this listener * should live for the whole lifetime of the application. * * @param entitlementsUpdateListener listener to be called when entitlements update. * @return builder instance for chain calls. */ setEntitlementsUpdateListener(entitlementsUpdateListener: EntitlementsUpdateListener): QonversionConfigBuilder { this.entitlementsUpdateListener = entitlementsUpdateListener; return this; } /** * Provide a URL to your proxy server which will redirect all the requests from the app * to our API. Please, contact us before using this feature. * * @param url your proxy server url * @return builder instance for chain calls. * @see [The documentation](https://documentation.qonversion.io/docs/custom-proxy-server-for-sdks) */ setProxyURL(url: string): QonversionConfigBuilder { this.proxyUrl = url; return this; } /** * Android only. * Use this function to enable Qonversion SDK Kids mode. * With this mode activated, our SDK does not collect any information that violates Google Children’s Privacy Policy. * @return builder instance for chain calls. */ enableKidsMode(): QonversionConfigBuilder { this.kidsMode = true; return this; } /** * Generate {@link QonversionConfig} instance with all the provided configurations. * * @return the complete {@link QonversionConfig} instance. */ build(): QonversionConfig { return new QonversionConfig( this.projectKey, this.launchMode, this.environment, this.entitlementsCacheLifetime, this.entitlementsUpdateListener, this.proxyUrl, this.kidsMode ) } } export default QonversionConfigBuilder;