@crimson-education/browser-logger 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js ADDED
@@ -0,0 +1,59 @@
1
+ import { datadogLogger, datadogReporter } from './reporters/datadogReporter';
2
+ import { sentryReporter } from './reporters/sentryReporter';
3
+ import { consoleLogger } from './utils';
4
+ export * from './types';
5
+ const reporters = [];
6
+ let initialized = false;
7
+ let ddInitialized = false;
8
+ export function init(config) {
9
+ initialized = true;
10
+ if (config.sentry) {
11
+ reporters.push(sentryReporter(config, config.sentry));
12
+ }
13
+ if (config.datadog) {
14
+ reporters.push(datadogReporter(config, config.datadog));
15
+ ddInitialized = true;
16
+ }
17
+ }
18
+ export function trackEvent(event) {
19
+ for (const reporter of reporters) {
20
+ reporter.trackEvent(event);
21
+ }
22
+ }
23
+ export function addMetadata(metadata) {
24
+ for (const reporter of reporters) {
25
+ reporter.addMetadata(metadata);
26
+ }
27
+ }
28
+ export function setUser(user) {
29
+ for (const reporter of reporters) {
30
+ reporter.setUser(user);
31
+ }
32
+ }
33
+ export function reportError(error, metadata) {
34
+ for (const reporter of reporters) {
35
+ reporter.reportError(error, metadata);
36
+ }
37
+ }
38
+ export function recordSession() {
39
+ for (const reporter of reporters) {
40
+ reporter.recordSession();
41
+ }
42
+ }
43
+ export function recordSessionStop() {
44
+ for (const reporter of reporters) {
45
+ reporter.recordSessionStop();
46
+ }
47
+ }
48
+ export function createLogger(name, options) {
49
+ if (!initialized) {
50
+ throw new Error('You must call init on BrowserLogger before creating a logger');
51
+ }
52
+ if (ddInitialized) {
53
+ return datadogLogger(name, options);
54
+ }
55
+ else {
56
+ return consoleLogger(name, options);
57
+ }
58
+ }
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAyB,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,cAAc,EAAwB,MAAM,4BAA4B,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,cAAc,SAAS,CAAC;AAUxB,MAAM,SAAS,GAAgB,EAAE,CAAC;AAClC,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,UAAU,IAAI,CAAC,MAAsB;IACzC,WAAW,GAAG,IAAI,CAAC;IAEnB,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KACvD;IAED,IAAI,MAAM,CAAC,OAAO,EAAE;QAClB,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,aAAa,GAAG,IAAI,CAAC;KACtB;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAkE;IAC3F,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KAC5B;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAChC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAuB;IAC7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACxB;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,QAAmB;IAC7D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACvC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,QAAQ,CAAC,aAAa,EAAE,CAAC;KAC1B;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;KAC9B;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,OAAiC;IAC3E,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;KACjF;IAED,IAAI,aAAa,EAAE;QACjB,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACrC;SAAM;QACL,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACrC;AACH,CAAC"}
@@ -0,0 +1,117 @@
1
+ import { datadogLogs } from '@datadog/browser-logs';
2
+ import { datadogRum } from '@datadog/browser-rum';
3
+ import { LogLevel } from '..';
4
+ export function datadogReporter(info, config) {
5
+ var _a, _b, _c, _d, _e;
6
+ datadogLogs.init({
7
+ site: config.site,
8
+ proxyUrl: config.proxyUrl,
9
+ clientToken: config.clientToken,
10
+ service: info.service,
11
+ env: info.environment,
12
+ version: (_a = config.version) !== null && _a !== void 0 ? _a : info.version,
13
+ forwardErrorsToLogs: (_b = config.forwardConsoleLogs) !== null && _b !== void 0 ? _b : true,
14
+ });
15
+ datadogRum.init({
16
+ site: config.site,
17
+ proxyUrl: config.proxyUrl,
18
+ clientToken: config.clientToken,
19
+ applicationId: config.applicationId,
20
+ service: info.service,
21
+ env: info.environment,
22
+ version: (_c = config.version) !== null && _c !== void 0 ? _c : info.version,
23
+ // Set sampleRate to 100 to capture 100%
24
+ // of transactions for performance monitoring.
25
+ sampleRate: (_d = config.sampleRate) !== null && _d !== void 0 ? _d : 100,
26
+ trackInteractions: (_e = config.trackInteractions) !== null && _e !== void 0 ? _e : false,
27
+ defaultPrivacyLevel: 'mask-user-input',
28
+ });
29
+ const reporter = {
30
+ trackEvent: function (event) {
31
+ datadogRum.addAction(event.message, {
32
+ ...event.metadata,
33
+ category: event.category,
34
+ });
35
+ },
36
+ addMetadata: function (metadata) {
37
+ for (const entry of Object.entries(metadata)) {
38
+ datadogRum.addRumGlobalContext(entry[0], entry[1]);
39
+ datadogLogs.addLoggerGlobalContext(entry[0], entry[1]);
40
+ }
41
+ },
42
+ setUser: function (user) {
43
+ if (user) {
44
+ datadogRum.setUser({
45
+ id: user.id,
46
+ email: user.email,
47
+ name: user.username,
48
+ });
49
+ datadogLogs.addLoggerGlobalContext('user_id', user.id);
50
+ datadogLogs.addLoggerGlobalContext('user_email', user.email);
51
+ datadogLogs.addLoggerGlobalContext('user_username', user.username);
52
+ }
53
+ else {
54
+ datadogRum.removeUser();
55
+ datadogLogs.removeLoggerGlobalContext('user_id');
56
+ datadogLogs.removeLoggerGlobalContext('user_email');
57
+ datadogLogs.removeLoggerGlobalContext('user_username');
58
+ }
59
+ },
60
+ reportError: function (error, metadata) {
61
+ // Note, datadog should pick up the console error above
62
+ datadogRum.addError(error, metadata);
63
+ },
64
+ recordSession: function () {
65
+ datadogRum.startSessionReplayRecording();
66
+ },
67
+ recordSessionStop: function () {
68
+ datadogRum.stopSessionReplayRecording();
69
+ },
70
+ };
71
+ return reporter;
72
+ }
73
+ export function datadogLogger(name, options) {
74
+ const loggerName = name !== null && name !== void 0 ? name : 'root';
75
+ const ddLogger = datadogLogs.createLogger(loggerName, {
76
+ context: options === null || options === void 0 ? void 0 : options.metadata,
77
+ });
78
+ const logger = {
79
+ startTimer: function () {
80
+ const start = new Date();
81
+ return {
82
+ logger: this,
83
+ done: ({ message, level } = {}) => {
84
+ const duration = new Date().getTime() - start.getTime();
85
+ logger[level !== null && level !== void 0 ? level : LogLevel.Info](message !== null && message !== void 0 ? message : 'Timer Completed', { duration });
86
+ return true;
87
+ },
88
+ };
89
+ },
90
+ child: function (metadata, name) {
91
+ return datadogLogger(name !== null && name !== void 0 ? name : `${loggerName}.child`, metadata);
92
+ },
93
+ log: (level, message, metadata) => {
94
+ switch (level) {
95
+ case LogLevel.Debug:
96
+ ddLogger.debug(message, metadata);
97
+ break;
98
+ case LogLevel.Info:
99
+ ddLogger.info(message, metadata);
100
+ break;
101
+ case LogLevel.Warn:
102
+ ddLogger.warn(message, metadata);
103
+ break;
104
+ case LogLevel.Error:
105
+ ddLogger.error(message, metadata);
106
+ break;
107
+ }
108
+ return logger;
109
+ },
110
+ debug: (message, metadata) => logger.log(LogLevel.Debug, message, metadata),
111
+ info: (message, metadata) => logger.log(LogLevel.Info, message, metadata),
112
+ warn: (message, metadata) => logger.log(LogLevel.Warn, message, metadata),
113
+ error: (message, metadata) => logger.log(LogLevel.Error, message, metadata),
114
+ };
115
+ return logger;
116
+ }
117
+ //# sourceMappingURL=datadogReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datadogReporter.js","sourceRoot":"","sources":["../../src/reporters/datadogReporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import * as Sentry from '@sentry/react';
2
+ import { Integrations } from '@sentry/tracing';
3
+ export function sentryReporter(info, config) {
4
+ var _a, _b;
5
+ Sentry.init({
6
+ dsn: config.dsn,
7
+ tunnel: config.proxyUrl,
8
+ integrations: [
9
+ new Integrations.BrowserTracing({
10
+ routingInstrumentation: info.browserHistory
11
+ ? Sentry.reactRouterV5Instrumentation(info.browserHistory)
12
+ : undefined,
13
+ }),
14
+ ],
15
+ allowUrls: config.allowUrls,
16
+ environment: info.environment,
17
+ release: (_a = config.release) !== null && _a !== void 0 ? _a : info.version,
18
+ // Set tracesSampleRate to 1.0 to capture 100%
19
+ // of transactions for performance monitoring.
20
+ tracesSampleRate: (_b = config.sampleRate) !== null && _b !== void 0 ? _b : 1.0,
21
+ });
22
+ const reporter = {
23
+ trackEvent: function (event) {
24
+ Sentry.addBreadcrumb({
25
+ category: event.category,
26
+ message: event.message,
27
+ data: event.metadata,
28
+ });
29
+ },
30
+ addMetadata: function (metadata) {
31
+ Sentry.setExtras(metadata);
32
+ },
33
+ setUser: function (user) {
34
+ var _a;
35
+ Sentry.setUser(user
36
+ ? {
37
+ id: user.id,
38
+ email: user.email,
39
+ name: (_a = user.name) !== null && _a !== void 0 ? _a : user.email,
40
+ username: user.username,
41
+ }
42
+ : null);
43
+ },
44
+ reportError: function (error, metadata) {
45
+ Sentry.captureException(error, {
46
+ extra: metadata,
47
+ });
48
+ },
49
+ recordSession: function () { },
50
+ recordSessionStop: function () { },
51
+ };
52
+ return reporter;
53
+ }
54
+ //# sourceMappingURL=sentryReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentryReporter.js","sourceRoot":"","sources":["../../src/reporters/sentryReporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,MAAM,UAAU,cAAc,CAAC,IAAiB,EAAE,MAA4B;;IAC5E,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,MAAM,EAAE,MAAM,CAAC,QAAQ;QACvB,YAAY,EAAE;YACZ,IAAI,YAAY,CAAC,cAAc,CAAC;gBAC9B,sBAAsB,EAAE,IAAI,CAAC,cAAc;oBACzC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC1D,CAAC,CAAC,SAAS;aACd,CAAC;SACH;QACD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,IAAI,CAAC,OAAO;QAEvC,8CAA8C;QAC9C,8CAA8C;QAC9C,gBAAgB,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,GAAG;KAC3C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAc;QAC1B,UAAU,EAAE,UAAU,KAIrB;YACC,MAAM,CAAC,aAAa,CAAC;gBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,QAAQ;aACrB,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,UAAU,QAAkB;YACvC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,UAAU,IAAuB;;YACxC,MAAM,CAAC,OAAO,CACZ,IAAI;gBACF,CAAC,CAAC;oBACE,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,mCAAI,IAAI,CAAC,KAAK;oBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;gBACH,CAAC,CAAC,IAAI,CACT,CAAC;QACJ,CAAC;QACD,WAAW,EAAE,UAAU,KAAc,EAAE,QAAmB;YACxD,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;gBAC7B,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC;QACD,aAAa,EAAE,cAAmB,CAAC;QACnC,iBAAiB,EAAE,cAAmB,CAAC;KACxC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/lib/types.js ADDED
@@ -0,0 +1,8 @@
1
+ export var LogLevel;
2
+ (function (LogLevel) {
3
+ LogLevel["Debug"] = "debug";
4
+ LogLevel["Info"] = "info";
5
+ LogLevel["Warn"] = "warn";
6
+ LogLevel["Error"] = "error";
7
+ })(LogLevel || (LogLevel = {}));
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAaA,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB"}
package/lib/utils.js ADDED
@@ -0,0 +1,43 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { LogLevel } from '.';
4
+ export function consoleLogger(name, options) {
5
+ const logger = {
6
+ startTimer() {
7
+ const start = new Date();
8
+ return {
9
+ logger: this,
10
+ done: (args) => {
11
+ var _a, _b;
12
+ const duration = new Date().getTime() - start.getTime();
13
+ logger[(_a = args === null || args === void 0 ? void 0 : args.level) !== null && _a !== void 0 ? _a : LogLevel.Info](`${(_b = args === null || args === void 0 ? void 0 : args.message) !== null && _b !== void 0 ? _b : 'Timer'} completed in: ${duration}`);
14
+ return true;
15
+ },
16
+ };
17
+ },
18
+ child(metadata, name) {
19
+ return consoleLogger(name, { metadata });
20
+ },
21
+ log: (level, message, metadata) => {
22
+ return logger[level](message, message);
23
+ },
24
+ debug: (...args) => {
25
+ console.debug(...args);
26
+ return logger;
27
+ },
28
+ info: (...args) => {
29
+ console.log(...args);
30
+ return logger;
31
+ },
32
+ warn: (...args) => {
33
+ console.warn(...args);
34
+ return logger;
35
+ },
36
+ error: (...args) => {
37
+ console.error(...args);
38
+ return logger;
39
+ },
40
+ };
41
+ return logger;
42
+ }
43
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,uDAAuD;AACvD,OAAO,EAA0D,QAAQ,EAAE,MAAM,GAAG,CAAC;AAErF,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,OAAiC;IAC5E,MAAM,MAAM,GAAY;QACtB,UAAU;YACR,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;YAEzB,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;;oBACb,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;oBACxD,MAAM,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC,CAAC;oBAC9F,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,QAA8B,EAAE,IAAa;YACjD,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,GAAG,EAAE,CAAC,KAAe,EAAE,OAAe,EAAE,QAAc,EAAE,EAAE;YACxD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACrB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crimson-education/browser-logger",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "An abstract logger and reporting utility for browser environments",
5
5
  "scripts": {
6
6
  "prepack": "npm run build",