UNPKG

@amplitude/unified

Version:

Official Amplitude SDK for Web analytics, experiment, session replay, and more.

90 lines 5.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AmplitudeUnified = void 0; var tslib_1 = require("tslib"); var analytics_browser_1 = require("@amplitude/analytics-browser"); var plugin_session_replay_browser_1 = require("@amplitude/plugin-session-replay-browser"); var plugin_experiment_browser_1 = require("@amplitude/plugin-experiment-browser"); var engagement_browser_1 = require("@amplitude/engagement-browser"); var library_1 = require("./library"); var AmplitudeUnified = /** @class */ (function (_super) { tslib_1.__extends(AmplitudeUnified, _super); function AmplitudeUnified() { return _super !== null && _super.apply(this, arguments) || this; } AmplitudeUnified.prototype.sessionReplay = function () { return this._sessionReplay; }; AmplitudeUnified.prototype.experiment = function () { // Return when init() or initAll() is not called if (this.config === undefined) { return undefined; } var expPlugins = this.plugins(plugin_experiment_browser_1.ExperimentPlugin); if (expPlugins.length === 0) { this.config.loggerProvider.debug("".concat(plugin_experiment_browser_1.ExperimentPlugin.pluginName, " plugin is not found.")); return undefined; } else if (expPlugins.length === 1) { return expPlugins[0].experiment; } else { this.config.loggerProvider.debug("Multiple instances of ".concat(plugin_experiment_browser_1.ExperimentPlugin.pluginName, " are found.")); return undefined; } }; /** * Initialize SDKs with configuration options. * * @param apiKey Amplitude API key. * @param analyticsOptions Analytics configuration options. Refer to {@link https://amplitude.com/docs/sdks/analytics/browser/browser-sdk-2#configure-the-sdk here} for more info. * @param unifiedOptions Shared configuration for all SDKs and for blade SDKs. */ AmplitudeUnified.prototype.initAll = function (apiKey, unifiedOptions) { return tslib_1.__awaiter(this, void 0, void 0, function () { var sharedOptions, srPlugin; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: sharedOptions = { serverZone: unifiedOptions === null || unifiedOptions === void 0 ? void 0 : unifiedOptions.serverZone, instanceName: unifiedOptions === null || unifiedOptions === void 0 ? void 0 : unifiedOptions.instanceName, }; _super.prototype.add.call(this, (0, library_1.libraryPlugin)()); return [4 /*yield*/, _super.prototype.init.call(this, apiKey, tslib_1.__assign(tslib_1.__assign({}, unifiedOptions === null || unifiedOptions === void 0 ? void 0 : unifiedOptions.analytics), sharedOptions)).promise]; case 1: _a.sent(); return [4 /*yield*/, _super.prototype.add.call(this, (0, plugin_session_replay_browser_1.sessionReplayPlugin)(tslib_1.__assign(tslib_1.__assign({}, unifiedOptions === null || unifiedOptions === void 0 ? void 0 : unifiedOptions.sessionReplay), sharedOptions))).promise]; case 2: _a.sent(); return [4 /*yield*/, _super.prototype.add.call(this, (0, plugin_experiment_browser_1.experimentPlugin)(tslib_1.__assign(tslib_1.__assign({}, unifiedOptions === null || unifiedOptions === void 0 ? void 0 : unifiedOptions.experiment), sharedOptions))).promise]; case 3: _a.sent(); srPlugin = this.plugin(plugin_session_replay_browser_1.SessionReplayPlugin.pluginName); if (srPlugin === undefined) { this.config.loggerProvider.debug("".concat(plugin_session_replay_browser_1.SessionReplayPlugin.pluginName, " plugin is not found.")); } else { this._sessionReplay = srPlugin.sessionReplay; } return [4 /*yield*/, _super.prototype.add.call(this, (0, engagement_browser_1.plugin)(tslib_1.__assign(tslib_1.__assign({}, unifiedOptions === null || unifiedOptions === void 0 ? void 0 : unifiedOptions.engagement), sharedOptions))).promise]; case 4: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Only analytics SDK is initialized. Use initAll() instead to initialize all blade SDKs. */ /* istanbul ignore next */ AmplitudeUnified.prototype.init = function (apiKey, userIdOrOptions, maybeOptions) { if (apiKey === void 0) { apiKey = ''; } var res = _super.prototype.init.call(this, apiKey, userIdOrOptions, maybeOptions); return res; }; return AmplitudeUnified; }(analytics_browser_1.AmplitudeBrowser)); exports.AmplitudeUnified = AmplitudeUnified; //# sourceMappingURL=unified.js.map