UNPKG

@grafana/faro-core

Version:
42 lines 1.91 kB
import { initializeEventsAPI } from './events'; import { initializeExceptionsAPI } from './exceptions'; import { initializeLogsAPI } from './logs'; import { initializeMeasurementsAPI } from './measurements'; import { initializeMetaAPI } from './meta'; import { initializeTracesAPI } from './traces'; import { initializeUserActionsAPI } from './userActions'; export 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 = initializeUserActionsAPI({ transports, config, internalLogger, pushEvent: pushEventWrapper, }); const tracesApi = 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 = initializeEventsAPI(props); pushEventImpl = eventsApi.pushEvent; return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, tracesApi), initializeExceptionsAPI(props)), initializeMetaAPI(props)), initializeLogsAPI(props)), initializeMeasurementsAPI(props)), eventsApi), userActionsApi); } //# sourceMappingURL=initialize.js.map