UNPKG

react-native-adapty

Version:
93 lines 3.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseOnboardingEvent = exports.OnboardingEventId = void 0; const adapty_error_1 = require("../adapty-error"); const adapty_native_error_1 = require("./adapty-native-error"); const adapty_ui_onboarding_meta_1 = require("../coders/adapty-ui-onboarding-meta"); const adapty_ui_onboarding_state_updated_action_1 = require("../coders/adapty-ui-onboarding-state-updated-action"); const onboarding_events_1 = require("../types/onboarding-events"); // Re-export types for convenience var onboarding_events_2 = require("../types/onboarding-events"); Object.defineProperty(exports, "OnboardingEventId", { enumerable: true, get: function () { return onboarding_events_2.OnboardingEventId; } }); // Parser function parseOnboardingEvent(input, ctx) { var _a; let obj; try { obj = JSON.parse(input); } catch (error) { throw adapty_error_1.AdaptyError.failedToDecode(`Failed to decode event: ${error === null || error === void 0 ? void 0 : error.message}`); } const eventId = obj['id']; if (!(eventId === null || eventId === void 0 ? void 0 : eventId.startsWith('onboarding_'))) { return null; } const viewObj = obj['view']; const view = { id: viewObj['id'], placementId: viewObj['placement_id'], variationId: viewObj['variation_id'], }; const decodeMeta = () => getOnboardingCoder('meta', ctx).decode(obj['meta']); switch (eventId) { case onboarding_events_1.OnboardingEventId.Close: case onboarding_events_1.OnboardingEventId.Custom: case onboarding_events_1.OnboardingEventId.Paywall: return { id: eventId, view, actionId: (_a = obj['action_id']) !== null && _a !== void 0 ? _a : '', meta: decodeMeta(), }; case onboarding_events_1.OnboardingEventId.StateUpdated: return { id: eventId, view, action: getOnboardingCoder('action', ctx).decode(obj['action']), meta: decodeMeta(), }; case onboarding_events_1.OnboardingEventId.FinishedLoading: return { id: eventId, view, meta: decodeMeta(), }; case onboarding_events_1.OnboardingEventId.Analytics: { const eventObj = obj['event']; return { id: eventId, view, event: { name: eventObj['name'], elementId: eventObj['element_id'], reply: eventObj['reply'], }, meta: decodeMeta(), }; } case onboarding_events_1.OnboardingEventId.Error: { const errorCoder = getOnboardingCoder('error', ctx); const decodedError = errorCoder.decode(obj['error']); return { id: eventId, view, error: errorCoder.getError(decodedError), }; } default: return null; } } exports.parseOnboardingEvent = parseOnboardingEvent; function getOnboardingCoder(type, _ctx) { switch (type) { case 'meta': return new adapty_ui_onboarding_meta_1.AdaptyUiOnboardingMetaCoder(); case 'action': return new adapty_ui_onboarding_state_updated_action_1.AdaptyUiOnboardingStateUpdatedActionCoder(); case 'error': return new adapty_native_error_1.AdaptyNativeErrorCoder(); } } //# sourceMappingURL=parse-onboarding.js.map