@grafana/faro-core
Version:
Core package of Faro.
31 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.initializeFaro = initializeFaro;
const api_1 = require("./api");
const instrumentations_1 = require("./instrumentations");
const internalLogger_1 = require("./internalLogger");
const metas_1 = require("./metas");
const sdk_1 = require("./sdk");
const transports_1 = require("./transports");
const unpatchedConsole_1 = require("./unpatchedConsole");
function initializeFaro(config) {
const unpatchedConsole = (0, unpatchedConsole_1.initializeUnpatchedConsole)(config);
const internalLogger = (0, internalLogger_1.initializeInternalLogger)(unpatchedConsole, config);
if ((0, sdk_1.isInternalFaroOnGlobalObject)() && !config.isolate) {
internalLogger.error('Faro is already registered. Either add instrumentations, transports etc. to the global faro instance or use the "isolate" property');
return undefined;
}
internalLogger.debug('Initializing');
// Initializing the APIs
const metas = (0, metas_1.initializeMetas)(unpatchedConsole, internalLogger, config);
const transports = (0, transports_1.initializeTransports)(unpatchedConsole, internalLogger, config, metas);
const api = (0, api_1.initializeAPI)(unpatchedConsole, internalLogger, config, metas, transports);
const instrumentations = (0, instrumentations_1.initializeInstrumentations)(unpatchedConsole, internalLogger, config, metas, transports, api);
const faro = (0, sdk_1.registerFaro)(unpatchedConsole, internalLogger, config, metas, transports, api, instrumentations);
// make sure Faro is initialized before registering default metas, instrumentations, transports etc.
(0, metas_1.registerInitialMetas)(faro);
(0, transports_1.registerInitialTransports)(faro);
(0, instrumentations_1.registerInitialInstrumentations)(faro);
return faro;
}
//# sourceMappingURL=initialize.js.map