@grafana/faro-core
Version:
Core package of Faro.
45 lines • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.initializeAPI = initializeAPI;
const events_1 = require("./events");
const exceptions_1 = require("./exceptions");
const logs_1 = require("./logs");
const measurements_1 = require("./measurements");
const meta_1 = require("./meta");
const traces_1 = require("./traces");
const userActions_1 = require("./userActions");
function initializeAPI(unpatchedConsole, internalLogger, config, metas, transports) {
internalLogger.debug('Initializing API');
// Create a deferred pushEvent function that will be set once events API is initialized
let pushEventImpl = null;
const pushEventWrapper = (name, attributes, domain, options) => {
if (pushEventImpl) {
pushEventImpl(name, attributes, domain, options);
}
else {
internalLogger.warn('pushEventImpl is not initialized. Event dropped:', { name, attributes, domain, options });
}
};
// Initialize user actions API with the wrapper function
const userActionsApi = (0, userActions_1.initializeUserActionsAPI)({
transports,
config,
internalLogger,
pushEvent: pushEventWrapper,
});
const tracesApi = (0, traces_1.initializeTracesAPI)(unpatchedConsole, internalLogger, config, metas, transports);
const props = {
unpatchedConsole,
internalLogger,
userActionsApi,
config,
metas,
transports,
tracesApi,
};
// Initialize events API and set the actual implementation
const eventsApi = (0, events_1.initializeEventsAPI)(props);
pushEventImpl = eventsApi.pushEvent;
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, tracesApi), (0, exceptions_1.initializeExceptionsAPI)(props)), (0, meta_1.initializeMetaAPI)(props)), (0, logs_1.initializeLogsAPI)(props)), (0, measurements_1.initializeMeasurementsAPI)(props)), eventsApi), userActionsApi);
}
//# sourceMappingURL=initialize.js.map