@amplitude/unified
Version:
Official Amplitude SDK for Web analytics, experiment, session replay, and more.
90 lines • 5.21 kB
JavaScript
;
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