UNPKG

@datadog/browser-logs

Version:
47 lines 2.52 kB
import { serializeConfiguration, ONE_KIBI_BYTE, validateAndBuildConfiguration, display, removeDuplicates, ConsoleApiName, RawReportType, objectValues, } from '@datadog/browser-core'; /** * arbitrary value, byte precision not needed */ export const DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT = 32 * ONE_KIBI_BYTE; export function validateAndBuildLogsConfiguration(initConfiguration, errorStack) { if (initConfiguration.usePciIntake === true && initConfiguration.site && initConfiguration.site !== 'datadoghq.com') { display.warn('PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.'); } const baseConfiguration = validateAndBuildConfiguration(initConfiguration, errorStack); const forwardConsoleLogs = validateAndBuildForwardOption(initConfiguration.forwardConsoleLogs, objectValues(ConsoleApiName), 'Forward Console Logs'); const forwardReports = validateAndBuildForwardOption(initConfiguration.forwardReports, objectValues(RawReportType), 'Forward Reports'); if (!baseConfiguration || !forwardConsoleLogs || !forwardReports) { return; } if (initConfiguration.forwardErrorsToLogs && !forwardConsoleLogs.includes(ConsoleApiName.error)) { forwardConsoleLogs.push(ConsoleApiName.error); } return { forwardErrorsToLogs: initConfiguration.forwardErrorsToLogs !== false, forwardConsoleLogs, forwardReports, requestErrorResponseLengthLimit: DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT, ...baseConfiguration, }; } export function validateAndBuildForwardOption(option, allowedValues, label) { if (option === undefined) { return []; } if (!(option === 'all' || (Array.isArray(option) && option.every((api) => allowedValues.includes(api))))) { display.error(`${label} should be "all" or an array with allowed values "${allowedValues.join('", "')}"`); return; } return option === 'all' ? allowedValues : removeDuplicates(option); } export function serializeLogsConfiguration(configuration) { const baseSerializedInitConfiguration = serializeConfiguration(configuration); return { forward_errors_to_logs: configuration.forwardErrorsToLogs, forward_console_logs: configuration.forwardConsoleLogs, forward_reports: configuration.forwardReports, use_pci_intake: configuration.usePciIntake, ...baseSerializedInitConfiguration, }; } //# sourceMappingURL=configuration.js.map