@datadog/browser-logs
Version:
63 lines • 5.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeLogsPublicApi = makeLogsPublicApi;
const browser_core_1 = require("@datadog/browser-core");
const logger_1 = require("../domain/logger");
const commonContext_1 = require("../domain/contexts/commonContext");
const startLogs_1 = require("./startLogs");
const preStartLogs_1 = require("./preStartLogs");
function makeLogsPublicApi() {
const trackingConsentState = (0, browser_core_1.createTrackingConsentState)();
const bufferedDataObservable = (0, browser_core_1.startBufferingData)().observable;
let strategy = (0, preStartLogs_1.createPreStartStrategy)(commonContext_1.buildCommonContext, trackingConsentState, (initConfiguration, configuration, hooks) => {
const startLogsResult = (0, browser_core_1.mockable)(startLogs_1.startLogs)(configuration, commonContext_1.buildCommonContext, trackingConsentState, bufferedDataObservable, hooks);
strategy = createPostStartStrategy(initConfiguration, startLogsResult);
return startLogsResult;
});
const getStrategy = () => strategy;
const customLoggers = {};
const mainLogger = new logger_1.Logger((...params) => strategy.handleLog(...params));
return (0, browser_core_1.makePublicApi)({
logger: mainLogger,
init: (initConfiguration) => {
const errorStack = new Error().stack;
(0, browser_core_1.callMonitored)(() => strategy.init(initConfiguration, errorStack));
},
setTrackingConsent: (0, browser_core_1.monitor)((trackingConsent) => {
trackingConsentState.update(trackingConsent);
(0, browser_core_1.addTelemetryUsage)({ feature: 'set-tracking-consent', tracking_consent: trackingConsent });
}),
getGlobalContext: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.globalContext, browser_core_1.ContextManagerMethod.getContext),
setGlobalContext: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.globalContext, browser_core_1.ContextManagerMethod.setContext),
setGlobalContextProperty: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.globalContext, browser_core_1.ContextManagerMethod.setContextProperty),
removeGlobalContextProperty: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.globalContext, browser_core_1.ContextManagerMethod.removeContextProperty),
clearGlobalContext: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.globalContext, browser_core_1.ContextManagerMethod.clearContext),
createLogger: (0, browser_core_1.monitor)((name, conf = {}) => {
customLoggers[name] = new logger_1.Logger((...params) => strategy.handleLog(...params), (0, browser_core_1.sanitize)(name), conf.handler, conf.level, (0, browser_core_1.sanitize)(conf.context));
return customLoggers[name];
}),
getLogger: (0, browser_core_1.monitor)((name) => customLoggers[name]),
getInitConfiguration: (0, browser_core_1.monitor)(() => (0, browser_core_1.deepClone)(strategy.initConfiguration)),
getInternalContext: (0, browser_core_1.monitor)((startTime) => strategy.getInternalContext(startTime)),
setUser: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.userContext, browser_core_1.ContextManagerMethod.setContext),
getUser: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.userContext, browser_core_1.ContextManagerMethod.getContext),
setUserProperty: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.userContext, browser_core_1.ContextManagerMethod.setContextProperty),
removeUserProperty: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.userContext, browser_core_1.ContextManagerMethod.removeContextProperty),
clearUser: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.userContext, browser_core_1.ContextManagerMethod.clearContext),
setAccount: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.accountContext, browser_core_1.ContextManagerMethod.setContext),
getAccount: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.accountContext, browser_core_1.ContextManagerMethod.getContext),
setAccountProperty: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.accountContext, browser_core_1.ContextManagerMethod.setContextProperty),
removeAccountProperty: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.accountContext, browser_core_1.ContextManagerMethod.removeContextProperty),
clearAccount: (0, browser_core_1.defineContextMethod)(getStrategy, browser_core_1.CustomerContextKey.accountContext, browser_core_1.ContextManagerMethod.clearContext),
});
}
function createPostStartStrategy(initConfiguration, startLogsResult) {
return {
init: (initConfiguration) => {
(0, browser_core_1.displayAlreadyInitializedError)('DD_LOGS', initConfiguration);
},
initConfiguration,
...startLogsResult,
};
}
//# sourceMappingURL=logsPublicApi.js.map