UNPKG

@adapty/capacitor

Version:
210 lines 8.84 kB
import { AdaptyError } from '../adapty-error'; import { AdaptyNativeErrorCoder } from './adapty-native-error'; import { AdaptyPaywallCoder } from './adapty-paywall'; import { AdaptyPaywallProductCoder } from './adapty-paywall-product'; import { AdaptyProfileCoder } from './adapty-profile'; import { ArrayCoder } from './array'; import { BridgeErrorCoder } from './bridge-error'; import { AdaptyRemoteConfigCoder } from './adapty-remote-config'; import { AdaptyPaywallBuilderCoder } from './adapty-paywall-builder'; import { AdaptyPurchaseResultCoder } from './adapty-purchase-result'; import { AdaptyOnboardingCoder } from './adapty-onboarding'; import { AdaptyUiOnboardingMetaCoder } from './adapty-ui-onboarding-meta'; import { AdaptyUiOnboardingStateParamsCoder } from './adapty-ui-onboarding-state-params'; import { AdaptyUiOnboardingStateUpdatedActionCoder } from './adapty-ui-onboarding-state-updated-action'; import { AdaptyInstallationStatusCoder } from './adapty-installation-status'; import { AdaptyInstallationDetailsCoder } from './adapty-installation-details'; const AdaptyTypes = [ 'AdaptyError', 'AdaptyProfile', 'AdaptyPurchaseResult', 'AdaptyPaywall', 'AdaptyPaywallProduct', 'AdaptyOnboarding', 'AdaptyRemoteConfig', 'AdaptyPaywallBuilder', 'AdaptyInstallationStatus', 'AdaptyInstallationDetails', 'AdaptyUiView', 'AdaptyUiDialogActionType', 'AdaptyUiOnboardingMeta', 'AdaptyUiOnboardingStateParams', 'AdaptyUiOnboardingStateUpdatedAction', 'Array<AdaptyPaywallProduct>', 'BridgeError', 'String', 'Boolean', 'Void', ]; export function parseMethodResult(input, resultType, ctx) { const log = ctx === null || ctx === void 0 ? void 0 : ctx.decode({ methodName: 'parseMethodResult' }); log === null || log === void 0 ? void 0 : log.start(() => ({ input })); let obj; // Attempt to parse the input into a JSON object try { obj = JSON.parse(input); } catch (error) { const adaptyError = AdaptyError.failedToDecode(`Failed to decode native response. JSON.parse raised an error: ${(error === null || error === void 0 ? void 0 : error.message) || ''}`); log === null || log === void 0 ? void 0 : log.failed(() => ({ adaptyError })); throw adaptyError; } if (obj.hasOwnProperty('success')) { if ([ 'String', 'Boolean', 'Void', 'AdaptyUiView', 'AdaptyUiDialogActionType', ].includes(resultType)) { return obj.success; } const coder = getCoder(resultType, ctx); return coder === null || coder === void 0 ? void 0 : coder.decode(obj.success); } else if (obj.hasOwnProperty('error')) { const coder = getCoder('AdaptyError', ctx); const errorData = coder === null || coder === void 0 ? void 0 : coder.decode(obj.error); throw coder.getError(errorData); } else { const adaptyError = AdaptyError.failedToDecode(`Failed to decode native response. Response does not have expected "success" or "error" property`); log === null || log === void 0 ? void 0 : log.failed(() => ({ adaptyError })); throw adaptyError; } } export function parseCommonEvent(event, input, ctx) { var _a, _b, _c; let obj; try { obj = JSON.parse(input); } catch (error) { throw AdaptyError.failedToDecode(`Failed to decode event: ${error === null || error === void 0 ? void 0 : error.message}`); } switch (event) { case 'did_load_latest_profile': return (_a = getCoder('AdaptyProfile', ctx)) === null || _a === void 0 ? void 0 : _a.decode(obj['profile']); case 'on_installation_details_success': return (_b = getCoder('AdaptyInstallationDetails', ctx)) === null || _b === void 0 ? void 0 : _b.decode(obj['details']); case 'on_installation_details_fail': return (_c = getCoder('AdaptyError', ctx)) === null || _c === void 0 ? void 0 : _c.decode(obj['error']); default: return null; } } export function parsePaywallEvent(input, ctx) { var _a, _b, _c, _d; const log = ctx === null || ctx === void 0 ? void 0 : ctx.decode({ methodName: 'parsePaywallEvent' }); log === null || log === void 0 ? void 0 : log.start(() => ({ input })); let obj; try { obj = JSON.parse(input); } catch (error) { throw AdaptyError.failedToDecode(`Failed to decode event: ${error === null || error === void 0 ? void 0 : error.message}`); } const result = {}; if (obj.hasOwnProperty('id')) { result['id'] = obj['id']; } if (obj.hasOwnProperty('profile')) { result['profile'] = (_a = getCoder('AdaptyProfile', ctx)) === null || _a === void 0 ? void 0 : _a.decode(obj['profile']); } if (obj.hasOwnProperty('product')) { result['product'] = (_b = getCoder('AdaptyPaywallProduct', ctx)) === null || _b === void 0 ? void 0 : _b.decode(obj['product']); } if (obj.hasOwnProperty('error')) { result['error'] = (_c = getCoder('AdaptyError', ctx)) === null || _c === void 0 ? void 0 : _c.decode(obj['error']); } if (obj.hasOwnProperty('action')) { result['action'] = obj['action']; } if (obj.hasOwnProperty('view')) { result['view'] = obj['view']; } if (obj.hasOwnProperty('product_id')) { result['product_id'] = obj['product_id']; } if (obj.hasOwnProperty('purchased_result')) { result['purchased_result'] = (_d = getCoder('AdaptyPurchaseResult', ctx)) === null || _d === void 0 ? void 0 : _d.decode(obj['purchased_result']); } return result; } export function parseOnboardingEvent(input, ctx) { var _a, _b, _c; const log = ctx === null || ctx === void 0 ? void 0 : ctx.decode({ methodName: 'parseOnboardingEvent' }); log === null || log === void 0 ? void 0 : log.start(() => ({ input })); let obj; try { obj = JSON.parse(input); } catch (error) { throw AdaptyError.failedToDecode(`Failed to decode event: ${error === null || error === void 0 ? void 0 : error.message}`); } const result = {}; if (obj.hasOwnProperty('view')) { result['view'] = obj['view']; } if (obj.hasOwnProperty('meta')) { result['meta'] = (_a = getCoder('AdaptyUiOnboardingMeta', ctx)) === null || _a === void 0 ? void 0 : _a.decode(obj['meta']); } if (obj.hasOwnProperty('event')) { result['event'] = obj['event']; } if (obj.hasOwnProperty('action_id')) { result['id'] = obj['action_id']; } if (obj.hasOwnProperty('action')) { try { result['action'] = (_b = getCoder('AdaptyUiOnboardingStateUpdatedAction', ctx)) === null || _b === void 0 ? void 0 : _b.decode(obj['action']); } catch (_e) { result['action'] = obj['action']; } } if (obj.hasOwnProperty('error')) { result['error'] = (_c = getCoder('AdaptyError', ctx)) === null || _c === void 0 ? void 0 : _c.decode(obj['error']); } return result; } function getCoder(type, ctx) { ctx === null || ctx === void 0 ? void 0 : ctx.stack; switch (type) { case 'AdaptyError': return new AdaptyNativeErrorCoder(); case 'AdaptyProfile': return new AdaptyProfileCoder(); case 'AdaptyPaywall': return new AdaptyPaywallCoder(); case 'AdaptyPaywallProduct': return new AdaptyPaywallProductCoder(); case 'AdaptyRemoteConfig': return new AdaptyRemoteConfigCoder(); case 'AdaptyPaywallBuilder': return new AdaptyPaywallBuilderCoder(); case 'AdaptyOnboarding': return new AdaptyOnboardingCoder(); case 'AdaptyPurchaseResult': return new AdaptyPurchaseResultCoder(); case 'AdaptyInstallationStatus': return new AdaptyInstallationStatusCoder(); case 'AdaptyInstallationDetails': return new AdaptyInstallationDetailsCoder(); case 'AdaptyUiOnboardingMeta': return new AdaptyUiOnboardingMetaCoder(); case 'AdaptyUiOnboardingStateParams': return new AdaptyUiOnboardingStateParamsCoder(); case 'AdaptyUiOnboardingStateUpdatedAction': return new AdaptyUiOnboardingStateUpdatedActionCoder(); case 'BridgeError': return new BridgeErrorCoder(); case 'Array<AdaptyPaywallProduct>': return new ArrayCoder(AdaptyPaywallProductCoder); case 'String': return null; } // @ts-ignore throw AdaptyError.failedToDecode(`Failed to decode native response. Response has unexpected "type" property: ${type}`); } //# sourceMappingURL=parse.js.map