Skip to content

Commit fc68f3a

Browse files
committed
fix(datadog): bundle dependencies properly
1 parent a0ff153 commit fc68f3a

File tree

4 files changed

+29
-29
lines changed

4 files changed

+29
-29
lines changed

apps/webapp/src/script/browser/CheckBrowser.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,8 @@
3333

3434
import Cookies from 'js-cookie';
3535

36-
import {getLogger} from 'Util/Logger';
37-
3836
import {QUERY_KEY} from '../auth/route';
3937

40-
const logger = getLogger('CheckBrowser');
41-
4238
const isOauth = (): boolean => location?.hash?.includes(QUERY_KEY.SCOPE) ?? false;
4339

4440
const cookieName = 'cookie_supported_test_wire_cookie_name';
@@ -71,7 +67,7 @@ const supportsCookies = (): boolean => {
7167

7268
const redirectUnsupportedBrowser = (error: string): void => {
7369
location.href = '/unsupported/';
74-
logger.development.error(error);
70+
console.error('[CheckBrowser]', error);
7571
};
7672

7773
const supportsIndexDB = (): Promise<boolean> =>

libraries/Logger/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
"description": "Security-critical unified logging library with automatic PII sanitization, multi-transport support, and global singleton for Electron + Browser contexts",
55
"license": "GPL-3.0",
66
"author": "Wire Swiss GmbH",
7-
"main": "./lib/index.cjs",
7+
"type": "module",
8+
"main": "./lib/index.js",
89
"module": "./lib/index.js",
910
"types": "./lib/index.d.ts",
1011
"exports": {
1112
".": {
1213
"types": "./lib/index.d.ts",
1314
"import": "./lib/index.js",
14-
"require": "./lib/index.cjs"
15+
"default": "./lib/index.js"
1516
},
1617
"./package.json": "./package.json"
1718
},

libraries/Logger/src/transports/DatadogTransport.ts

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,9 @@ import logdown from 'logdown';
2222
import {Transport, LogEntry, LogLevel, DatadogTransportConfig} from '../types';
2323
import {isAllowedAVSLog} from '../utils/avsFilter';
2424

25-
// Datadog SDK imports
26-
let datadogLogs: any;
27-
let datadogRum: any;
28-
29-
try {
30-
// Dynamic imports for browser environment
31-
datadogLogs = require('@datadog/browser-logs');
32-
datadogRum = require('@datadog/browser-rum');
33-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
34-
} catch (error) {
35-
// Datadog SDKs not available - transport will remain uninitialized
36-
}
25+
// Datadog SDK imports - these will be bundled with the library
26+
import {datadogLogs} from '@datadog/browser-logs';
27+
import {datadogRum} from '@datadog/browser-rum';
3728

3829
/**
3930
* Datadog transport implementation - Sends production logs to DataDog
@@ -131,7 +122,7 @@ export class DatadogTransport implements Transport {
131122
env: this.config.env,
132123
version: this.config.version,
133124
forwardErrorsToLogs: true,
134-
forwardConsoleLogs: this.config.forwardConsoleLogs, // Should always be false in config
125+
forwardConsoleLogs: this.config.forwardConsoleLogs ? 'all' : undefined, // Should always be false in config
135126
sessionSampleRate: 100,
136127
beforeSend: (log: any) => {
137128
// Filter AVS logs (they are very verbose)
@@ -235,7 +226,20 @@ export class DatadogTransport implements Transport {
235226
}
236227

237228
// Log to Datadog with structured context
238-
datadogLogs.logger[datadogLevel](entry.message, logContext, entry.error);
229+
switch (datadogLevel) {
230+
case 'debug':
231+
datadogLogs.logger.debug(entry.message, logContext, entry.error);
232+
break;
233+
case 'info':
234+
datadogLogs.logger.info(entry.message, logContext, entry.error);
235+
break;
236+
case 'warn':
237+
datadogLogs.logger.warn(entry.message, logContext, entry.error);
238+
break;
239+
case 'error':
240+
datadogLogs.logger.error(entry.message, logContext, entry.error);
241+
break;
242+
}
239243

240244
// Debug log for successful Datadog call
241245
this.debugLogger.debug('Successfully logged to Datadog', {

libraries/Logger/vite.config.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@ export default defineConfig({
77
target: 'esnext',
88
lib: {
99
entry: resolve(__dirname, 'src/index.ts'),
10-
formats: ['es', 'cjs'],
11-
fileName: format => {
12-
if (format === 'cjs') {
13-
return 'index.cjs';
14-
}
15-
return 'index.js';
16-
},
10+
// Only build ESM format to avoid Datadog being loaded twice
11+
// Webpack can consume ESM modules natively
12+
formats: ['es'],
13+
fileName: () => 'index.js',
1714
},
1815
rollupOptions: {
19-
external: ['logdown', '@datadog/browser-logs', '@datadog/browser-rum', 'fs', 'path', 'fs/promises'],
16+
// Bundle all dependencies to avoid require() issues in webpack
17+
// Only keep Node.js built-ins as external
18+
external: ['fs', 'path', 'fs/promises'],
2019
},
2120
outDir: 'lib',
2221
},

0 commit comments

Comments
 (0)