nightingale 12.1.0 → 12.1.4

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/.eslintrc.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "root": true,
3
- "extends": ["@pob/eslint-config/root-commonjs"],
3
+ "extends": ["@pob/eslint-config/root-module"],
4
4
  "ignorePatterns": ["*.d.ts", "/dist"]
5
5
  }
package/CHANGELOG.md CHANGED
@@ -3,6 +3,48 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [12.1.4](https://github.com/christophehurpeau/nightingale/compare/v12.1.3...v12.1.4) (2022-02-05)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * better browser support when global is not defined ([194c252](https://github.com/christophehurpeau/nightingale/commit/194c25226d5aa8e7eda7cbdb899c921341f82d71))
12
+ * cjs build ([2e24ac5](https://github.com/christophehurpeau/nightingale/commit/2e24ac5753ee386c5be9ca56796194ee598f10ff))
13
+
14
+
15
+
16
+
17
+
18
+ ## [12.1.3](https://github.com/christophehurpeau/nightingale/compare/v12.1.2...v12.1.3) (2022-01-15)
19
+
20
+ **Note:** Version bump only for package nightingale
21
+
22
+
23
+
24
+
25
+
26
+ ## [12.1.2](https://github.com/christophehurpeau/nightingale/compare/v12.1.1...v12.1.2) (2022-01-02)
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * main esm for jest which supports esm but not exports ([98789fa](https://github.com/christophehurpeau/nightingale/commit/98789fa490e723840fccc443584189b6905d871b))
32
+
33
+
34
+
35
+
36
+
37
+ ## [12.1.1](https://github.com/christophehurpeau/nightingale/compare/v12.1.0...v12.1.1) (2022-01-01)
38
+
39
+
40
+ ### Bug Fixes
41
+
42
+ * properly configure package type ([2e0cbf5](https://github.com/christophehurpeau/nightingale/commit/2e0cbf555bd3b9fa3c3851025452937f64408aa8))
43
+
44
+
45
+
46
+
47
+
6
48
  # [12.1.0](https://github.com/christophehurpeau/nightingale/compare/v12.0.1...v12.1.0) (2021-12-15)
7
49
 
8
50
  **Note:** Version bump only for package nightingale
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAyDvE,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAQhD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAI/D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA+DvE,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAQhD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAI/D"}
@@ -5,21 +5,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var nightingaleLogger = require('nightingale-logger');
6
6
  var nightingaleLevels = require('nightingale-levels');
7
7
 
8
- if (process.env.NODE_ENV !== "production" && global.__NIGHTINGALE_GLOBAL_HANDLERS) {
8
+ var globalOrWindow = typeof global !== 'undefined' ? global : window;
9
+
10
+ if ((process.env.NODE_ENV !== "production") && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {
9
11
  throw new Error('nightingale: update all to ^5.0.0');
10
12
  }
11
13
 
12
- if (!global.__NIGHTINGALE_CONFIG) {
13
- global.__NIGHTINGALE_CONFIG = [];
14
- global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
15
- global.__NIGHTINGALE_CONFIG_DEFAULT = {
14
+ if (!globalOrWindow.__NIGHTINGALE_CONFIG) {
15
+ globalOrWindow.__NIGHTINGALE_CONFIG = [];
16
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
17
+ globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {
16
18
  handlers: [],
17
19
  processors: []
18
20
  };
19
21
  }
20
22
 
21
23
  function clearCache() {
22
- global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
24
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
23
25
  }
24
26
 
25
27
  function handleConfig(config) {
@@ -62,13 +64,13 @@ function handleConfig(config) {
62
64
  }
63
65
 
64
66
  function configure(config) {
65
- if (global.__NIGHTINGALE_CONFIG.length > 0) {
67
+ if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {
66
68
  // eslint-disable-next-line no-console
67
69
  console.log('nightingale: warning: config overridden');
68
70
  }
69
71
 
70
72
  clearCache();
71
- global.__NIGHTINGALE_CONFIG = config.map(handleConfig);
73
+ globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);
72
74
  }
73
75
  function addConfig(config, unshift) {
74
76
  if (unshift === void 0) {
@@ -77,7 +79,7 @@ function addConfig(config, unshift) {
77
79
 
78
80
  config = handleConfig(config);
79
81
 
80
- global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
82
+ globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
81
83
 
82
84
  clearCache();
83
85
  }
@@ -90,8 +92,8 @@ var configIsForKey = function configIsForKey(key) {
90
92
  };
91
93
  };
92
94
 
93
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function (key) {
94
- var globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;
95
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function (key) {
96
+ var globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;
95
97
  var existingCache = globalCache.get(key);
96
98
 
97
99
  if (existingCache) {
@@ -103,7 +105,7 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function (key) {
103
105
  processors: []
104
106
  };
105
107
 
106
- global.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(function (config) {
108
+ globalOrWindow.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(function (config) {
107
109
  var _loggerConfig$handler, _loggerConfig$process;
108
110
 
109
111
  if (config.handlers) (_loggerConfig$handler = loggerConfig.handlers).push.apply(_loggerConfig$handler, config.handlers);
@@ -115,17 +117,17 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function (key) {
115
117
  return loggerConfig;
116
118
  };
117
119
 
118
- if (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
119
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
120
- var _global$__NIGHTINGALE = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
121
- handlers = _global$__NIGHTINGALE.handlers,
122
- processors = _global$__NIGHTINGALE.processors;
120
+ if (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
121
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
122
+ var _globalOrWindow$__NIG = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
123
+ handlers = _globalOrWindow$__NIG.handlers,
124
+ processors = _globalOrWindow$__NIG.processors;
123
125
 
124
126
  return {
125
127
  handlers: handlers.filter(function (handler) {
126
128
  return level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key));
127
129
  }),
128
- processors
130
+ processors: processors
129
131
  };
130
132
  };
131
133
  }
@@ -142,13 +144,13 @@ function listenUnhandledErrors(logger) {
142
144
 
143
145
  process.on('uncaughtException', function (error) {
144
146
  logger.error('uncaughtException', {
145
- error,
147
+ error: error,
146
148
  unhandled: true
147
149
  });
148
150
  });
149
151
  process.on('unhandledRejection', function (error) {
150
152
  logger.error('unhandledRejection', {
151
- error,
153
+ error: error,
152
154
  unhandled: true
153
155
  });
154
156
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.cjs.js","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nif (__DEV__ && global.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!global.__NIGHTINGALE_CONFIG) {\n global.__NIGHTINGALE_CONFIG = [];\n global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n global.__NIGHTINGALE_CONFIG_DEFAULT = { handlers: [], processors: [] };\n}\n\nfunction clearCache(): void {\n global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (global.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n global.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobal.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n global.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["__DEV__","global","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
1
+ {"version":3,"file":"index-browser.cjs.js","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\n\nif (__DEV__ && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!globalOrWindow.__NIGHTINGALE_CONFIG) {\n globalOrWindow.__NIGHTINGALE_CONFIG = [];\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {\n handlers: [],\n processors: [],\n };\n}\n\nfunction clearCache(): void {\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n globalOrWindow.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["globalOrWindow","global","window","__DEV__","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
@@ -2,21 +2,23 @@ import { Logger } from 'nightingale-logger';
2
2
  export { Logger } from 'nightingale-logger';
3
3
  export { Level, Level as levels } from 'nightingale-levels';
4
4
 
5
- if (process.env.NODE_ENV !== "production" && global.__NIGHTINGALE_GLOBAL_HANDLERS) {
5
+ var globalOrWindow = typeof global !== 'undefined' ? global : window;
6
+
7
+ if ((process.env.NODE_ENV !== "production") && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {
6
8
  throw new Error('nightingale: update all to ^5.0.0');
7
9
  }
8
10
 
9
- if (!global.__NIGHTINGALE_CONFIG) {
10
- global.__NIGHTINGALE_CONFIG = [];
11
- global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
12
- global.__NIGHTINGALE_CONFIG_DEFAULT = {
11
+ if (!globalOrWindow.__NIGHTINGALE_CONFIG) {
12
+ globalOrWindow.__NIGHTINGALE_CONFIG = [];
13
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
14
+ globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {
13
15
  handlers: [],
14
16
  processors: []
15
17
  };
16
18
  }
17
19
 
18
20
  function clearCache() {
19
- global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
21
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
20
22
  }
21
23
 
22
24
  function handleConfig(config) {
@@ -59,13 +61,13 @@ function handleConfig(config) {
59
61
  }
60
62
 
61
63
  function configure(config) {
62
- if (global.__NIGHTINGALE_CONFIG.length > 0) {
64
+ if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {
63
65
  // eslint-disable-next-line no-console
64
66
  console.log('nightingale: warning: config overridden');
65
67
  }
66
68
 
67
69
  clearCache();
68
- global.__NIGHTINGALE_CONFIG = config.map(handleConfig);
70
+ globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);
69
71
  }
70
72
  function addConfig(config, unshift) {
71
73
  if (unshift === void 0) {
@@ -74,7 +76,7 @@ function addConfig(config, unshift) {
74
76
 
75
77
  config = handleConfig(config);
76
78
 
77
- global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
79
+ globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
78
80
 
79
81
  clearCache();
80
82
  }
@@ -87,8 +89,8 @@ var configIsForKey = function configIsForKey(key) {
87
89
  };
88
90
  };
89
91
 
90
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function (key) {
91
- var globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;
92
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function (key) {
93
+ var globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;
92
94
  var existingCache = globalCache.get(key);
93
95
 
94
96
  if (existingCache) {
@@ -100,7 +102,7 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function (key) {
100
102
  processors: []
101
103
  };
102
104
 
103
- global.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(function (config) {
105
+ globalOrWindow.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(function (config) {
104
106
  var _loggerConfig$handler, _loggerConfig$process;
105
107
 
106
108
  if (config.handlers) (_loggerConfig$handler = loggerConfig.handlers).push.apply(_loggerConfig$handler, config.handlers);
@@ -112,17 +114,17 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function (key) {
112
114
  return loggerConfig;
113
115
  };
114
116
 
115
- if (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
116
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
117
- var _global$__NIGHTINGALE = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
118
- handlers = _global$__NIGHTINGALE.handlers,
119
- processors = _global$__NIGHTINGALE.processors;
117
+ if (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
118
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
119
+ var _globalOrWindow$__NIG = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
120
+ handlers = _globalOrWindow$__NIG.handlers,
121
+ processors = _globalOrWindow$__NIG.processors;
120
122
 
121
123
  return {
122
124
  handlers: handlers.filter(function (handler) {
123
125
  return level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key));
124
126
  }),
125
- processors
127
+ processors: processors
126
128
  };
127
129
  };
128
130
  }
@@ -139,13 +141,13 @@ function listenUnhandledErrors(logger) {
139
141
 
140
142
  process.on('uncaughtException', function (error) {
141
143
  logger.error('uncaughtException', {
142
- error,
144
+ error: error,
143
145
  unhandled: true
144
146
  });
145
147
  });
146
148
  process.on('unhandledRejection', function (error) {
147
149
  logger.error('unhandledRejection', {
148
- error,
150
+ error: error,
149
151
  unhandled: true
150
152
  });
151
153
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.es.js","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nif (__DEV__ && global.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!global.__NIGHTINGALE_CONFIG) {\n global.__NIGHTINGALE_CONFIG = [];\n global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n global.__NIGHTINGALE_CONFIG_DEFAULT = { handlers: [], processors: [] };\n}\n\nfunction clearCache(): void {\n global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (global.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n global.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobal.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n global.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["__DEV__","global","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
1
+ {"version":3,"file":"index-browser.es.js","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\n\nif (__DEV__ && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!globalOrWindow.__NIGHTINGALE_CONFIG) {\n globalOrWindow.__NIGHTINGALE_CONFIG = [];\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {\n handlers: [],\n processors: [],\n };\n}\n\nfunction clearCache(): void {\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n globalOrWindow.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["globalOrWindow","global","window","__DEV__","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
@@ -2,21 +2,23 @@ import { Logger } from 'nightingale-logger';
2
2
  export { Logger } from 'nightingale-logger';
3
3
  export { Level, Level as levels } from 'nightingale-levels';
4
4
 
5
- if (process.env.NODE_ENV !== "production" && global.__NIGHTINGALE_GLOBAL_HANDLERS) {
5
+ const globalOrWindow = typeof global !== 'undefined' ? global : window;
6
+
7
+ if ((process.env.NODE_ENV !== "production") && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {
6
8
  throw new Error('nightingale: update all to ^5.0.0');
7
9
  }
8
10
 
9
- if (!global.__NIGHTINGALE_CONFIG) {
10
- global.__NIGHTINGALE_CONFIG = [];
11
- global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
12
- global.__NIGHTINGALE_CONFIG_DEFAULT = {
11
+ if (!globalOrWindow.__NIGHTINGALE_CONFIG) {
12
+ globalOrWindow.__NIGHTINGALE_CONFIG = [];
13
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
14
+ globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {
13
15
  handlers: [],
14
16
  processors: []
15
17
  };
16
18
  }
17
19
 
18
20
  function clearCache() {
19
- global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
21
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
20
22
  }
21
23
 
22
24
  function handleConfig(config) {
@@ -59,18 +61,18 @@ function handleConfig(config) {
59
61
  }
60
62
 
61
63
  function configure(config) {
62
- if (global.__NIGHTINGALE_CONFIG.length > 0) {
64
+ if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {
63
65
  // eslint-disable-next-line no-console
64
66
  console.log('nightingale: warning: config overridden');
65
67
  }
66
68
 
67
69
  clearCache();
68
- global.__NIGHTINGALE_CONFIG = config.map(handleConfig);
70
+ globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);
69
71
  }
70
72
  function addConfig(config, unshift = false) {
71
73
  config = handleConfig(config);
72
74
 
73
- global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
75
+ globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
74
76
 
75
77
  clearCache();
76
78
  }
@@ -81,8 +83,8 @@ const configIsForKey = key => config => {
81
83
  return true;
82
84
  };
83
85
 
84
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
85
- const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;
86
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
87
+ const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;
86
88
  const existingCache = globalCache.get(key);
87
89
 
88
90
  if (existingCache) {
@@ -94,7 +96,7 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
94
96
  processors: []
95
97
  };
96
98
 
97
- global.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(config => {
99
+ globalOrWindow.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(config => {
98
100
  if (config.handlers) loggerConfig.handlers.push(...config.handlers);
99
101
  if (config.processors) loggerConfig.processors.push(...config.processors);
100
102
  return config.stop;
@@ -104,12 +106,12 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
104
106
  return loggerConfig;
105
107
  };
106
108
 
107
- if (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
108
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
109
+ if (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
110
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
109
111
  const {
110
112
  handlers,
111
113
  processors
112
- } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
114
+ } = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
113
115
 
114
116
  return {
115
117
  handlers: handlers.filter(handler => level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))),
@@ -1 +1 @@
1
- {"version":3,"file":"index-browsermodern.es.js","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nif (__DEV__ && global.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!global.__NIGHTINGALE_CONFIG) {\n global.__NIGHTINGALE_CONFIG = [];\n global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n global.__NIGHTINGALE_CONFIG_DEFAULT = { handlers: [], processors: [] };\n}\n\nfunction clearCache(): void {\n global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (global.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n global.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobal.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n global.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["__DEV__","global","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
1
+ {"version":3,"file":"index-browsermodern.es.js","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\n\nif (__DEV__ && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!globalOrWindow.__NIGHTINGALE_CONFIG) {\n globalOrWindow.__NIGHTINGALE_CONFIG = [];\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {\n handlers: [],\n processors: [],\n };\n}\n\nfunction clearCache(): void {\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n globalOrWindow.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["globalOrWindow","global","window","__DEV__","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
@@ -5,21 +5,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const nightingaleLogger = require('nightingale-logger');
6
6
  const nightingaleLevels = require('nightingale-levels');
7
7
 
8
- if (process.env.NODE_ENV !== "production" && global.__NIGHTINGALE_GLOBAL_HANDLERS) {
8
+ const globalOrWindow = typeof global !== 'undefined' ? global : window;
9
+
10
+ if ((process.env.NODE_ENV !== "production") && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {
9
11
  throw new Error('nightingale: update all to ^5.0.0');
10
12
  }
11
13
 
12
- if (!global.__NIGHTINGALE_CONFIG) {
13
- global.__NIGHTINGALE_CONFIG = [];
14
- global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
15
- global.__NIGHTINGALE_CONFIG_DEFAULT = {
14
+ if (!globalOrWindow.__NIGHTINGALE_CONFIG) {
15
+ globalOrWindow.__NIGHTINGALE_CONFIG = [];
16
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
17
+ globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {
16
18
  handlers: [],
17
19
  processors: []
18
20
  };
19
21
  }
20
22
 
21
23
  function clearCache() {
22
- global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
24
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
23
25
  }
24
26
 
25
27
  function handleConfig(config) {
@@ -62,18 +64,18 @@ function handleConfig(config) {
62
64
  }
63
65
 
64
66
  function configure(config) {
65
- if (global.__NIGHTINGALE_CONFIG.length > 0) {
67
+ if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {
66
68
  // eslint-disable-next-line no-console
67
69
  console.log('nightingale: warning: config overridden');
68
70
  }
69
71
 
70
72
  clearCache();
71
- global.__NIGHTINGALE_CONFIG = config.map(handleConfig);
73
+ globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);
72
74
  }
73
75
  function addConfig(config, unshift = false) {
74
76
  config = handleConfig(config);
75
77
 
76
- global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
78
+ globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
77
79
 
78
80
  clearCache();
79
81
  }
@@ -84,8 +86,8 @@ const configIsForKey = key => config => {
84
86
  return true;
85
87
  };
86
88
 
87
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
88
- const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;
89
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
90
+ const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;
89
91
  const existingCache = globalCache.get(key);
90
92
 
91
93
  if (existingCache) {
@@ -97,7 +99,7 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
97
99
  processors: []
98
100
  };
99
101
 
100
- global.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(config => {
102
+ globalOrWindow.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(config => {
101
103
  if (config.handlers) loggerConfig.handlers.push(...config.handlers);
102
104
  if (config.processors) loggerConfig.processors.push(...config.processors);
103
105
  return config.stop;
@@ -107,12 +109,12 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
107
109
  return loggerConfig;
108
110
  };
109
111
 
110
- if (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
111
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
112
+ if (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
113
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
112
114
  const {
113
115
  handlers,
114
116
  processors
115
- } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
117
+ } = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
116
118
 
117
119
  return {
118
120
  handlers: handlers.filter(handler => level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))),
@@ -147,4 +149,4 @@ exports.levels = nightingaleLevels.Level;
147
149
  exports.addConfig = addConfig;
148
150
  exports.configure = configure;
149
151
  exports.listenUnhandledErrors = listenUnhandledErrors;
150
- //# sourceMappingURL=index-node14.cjs.js.map
152
+ //# sourceMappingURL=index-node14.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-node14.cjs","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\n\nif (__DEV__ && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!globalOrWindow.__NIGHTINGALE_CONFIG) {\n globalOrWindow.__NIGHTINGALE_CONFIG = [];\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {\n handlers: [],\n processors: [],\n };\n}\n\nfunction clearCache(): void {\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n globalOrWindow.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["globalOrWindow","global","window","__DEV__","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
@@ -2,21 +2,23 @@ import { Logger } from 'nightingale-logger';
2
2
  export { Logger } from 'nightingale-logger';
3
3
  export { Level, Level as levels } from 'nightingale-levels';
4
4
 
5
- if (process.env.NODE_ENV !== "production" && global.__NIGHTINGALE_GLOBAL_HANDLERS) {
5
+ const globalOrWindow = typeof global !== 'undefined' ? global : window;
6
+
7
+ if ((process.env.NODE_ENV !== "production") && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {
6
8
  throw new Error('nightingale: update all to ^5.0.0');
7
9
  }
8
10
 
9
- if (!global.__NIGHTINGALE_CONFIG) {
10
- global.__NIGHTINGALE_CONFIG = [];
11
- global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
12
- global.__NIGHTINGALE_CONFIG_DEFAULT = {
11
+ if (!globalOrWindow.__NIGHTINGALE_CONFIG) {
12
+ globalOrWindow.__NIGHTINGALE_CONFIG = [];
13
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map();
14
+ globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {
13
15
  handlers: [],
14
16
  processors: []
15
17
  };
16
18
  }
17
19
 
18
20
  function clearCache() {
19
- global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
21
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
20
22
  }
21
23
 
22
24
  function handleConfig(config) {
@@ -59,18 +61,18 @@ function handleConfig(config) {
59
61
  }
60
62
 
61
63
  function configure(config) {
62
- if (global.__NIGHTINGALE_CONFIG.length > 0) {
64
+ if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {
63
65
  // eslint-disable-next-line no-console
64
66
  console.log('nightingale: warning: config overridden');
65
67
  }
66
68
 
67
69
  clearCache();
68
- global.__NIGHTINGALE_CONFIG = config.map(handleConfig);
70
+ globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);
69
71
  }
70
72
  function addConfig(config, unshift = false) {
71
73
  config = handleConfig(config);
72
74
 
73
- global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
75
+ globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
74
76
 
75
77
  clearCache();
76
78
  }
@@ -81,8 +83,8 @@ const configIsForKey = key => config => {
81
83
  return true;
82
84
  };
83
85
 
84
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
85
- const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;
86
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
87
+ const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;
86
88
  const existingCache = globalCache.get(key);
87
89
 
88
90
  if (existingCache) {
@@ -94,7 +96,7 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
94
96
  processors: []
95
97
  };
96
98
 
97
- global.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(config => {
99
+ globalOrWindow.__NIGHTINGALE_CONFIG.filter(configIsForKey(key)).some(config => {
98
100
  if (config.handlers) loggerConfig.handlers.push(...config.handlers);
99
101
  if (config.processors) loggerConfig.processors.push(...config.processors);
100
102
  return config.stop;
@@ -104,12 +106,12 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = key => {
104
106
  return loggerConfig;
105
107
  };
106
108
 
107
- if (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
108
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
109
+ if (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
110
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
109
111
  const {
110
112
  handlers,
111
113
  processors
112
- } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
114
+ } = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
113
115
 
114
116
  return {
115
117
  handlers: handlers.filter(handler => level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))),
@@ -1 +1 @@
1
- {"version":3,"file":"index-node14.mjs","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nif (__DEV__ && global.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!global.__NIGHTINGALE_CONFIG) {\n global.__NIGHTINGALE_CONFIG = [];\n global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n global.__NIGHTINGALE_CONFIG_DEFAULT = { handlers: [], processors: [] };\n}\n\nfunction clearCache(): void {\n global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (global.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n global.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobal.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n global.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["__DEV__","global","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
1
+ {"version":3,"file":"index-node14.mjs","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\n\nif (__DEV__ && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!globalOrWindow.__NIGHTINGALE_CONFIG) {\n globalOrWindow.__NIGHTINGALE_CONFIG = [];\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {\n handlers: [],\n processors: [],\n };\n}\n\nfunction clearCache(): void {\n globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n globalOrWindow.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["globalOrWindow","global","window","__DEV__","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nightingale",
3
- "version": "12.1.0",
3
+ "version": "12.1.4",
4
4
  "description": "Logger for browser and node",
5
5
  "keywords": [
6
6
  "logger"
@@ -13,7 +13,7 @@
13
13
  "directory": "packages/nightingale"
14
14
  },
15
15
  "homepage": "https://github.com/christophehurpeau/nightingale",
16
- "type": "commonjs",
16
+ "type": "module",
17
17
  "engines": {
18
18
  "node": "^14.13.1 || >=16.0.0"
19
19
  },
@@ -24,7 +24,7 @@
24
24
  "not safari < 10",
25
25
  "not ios_saf < 10"
26
26
  ],
27
- "main": "./dist/index-node14.cjs.js",
27
+ "main": "./dist/index-node14.mjs",
28
28
  "types": "./dist/index.d.ts",
29
29
  "module": "./dist/index-browser.es.js",
30
30
  "browser": "./dist/index-browser.es.js",
@@ -33,7 +33,7 @@
33
33
  ".": {
34
34
  "node": {
35
35
  "import": "./dist/index-node14.mjs",
36
- "require": "./dist/index-node14.cjs.js"
36
+ "require": "./dist/index-node14.cjs"
37
37
  },
38
38
  "browser": {
39
39
  "browser:modern": {
@@ -91,17 +91,17 @@
91
91
  },
92
92
  "dependencies": {
93
93
  "@types/node": ">=14.0.0",
94
- "nightingale-levels": "12.1.0",
95
- "nightingale-logger": "12.1.0",
96
- "nightingale-types": "12.1.0"
94
+ "nightingale-levels": "12.1.4",
95
+ "nightingale-logger": "12.1.4",
96
+ "nightingale-types": "12.1.4"
97
97
  },
98
98
  "devDependencies": {
99
- "@babel/core": "7.16.0",
100
- "@babel/preset-env": "7.16.4",
99
+ "@babel/core": "7.17.0",
100
+ "@babel/preset-env": "7.16.11",
101
101
  "babel-preset-modern-browsers": "15.0.2",
102
- "nightingale-string": "12.1.0",
103
- "pob-babel": "29.4.2",
104
- "typescript": "4.5.4"
102
+ "nightingale-string": "12.1.4",
103
+ "pob-babel": "30.0.1",
104
+ "typescript": "4.5.5"
105
105
  },
106
- "gitHead": "f2f75856d32f444f0ed08b5ab903537cb1f4c38f"
106
+ "gitHead": "3754d4575d948b5bb8c5227d3c3f4ca25e801db5"
107
107
  }
package/src/config.ts CHANGED
@@ -1,21 +1,27 @@
1
1
  import type { ComputedConfigForKey, Config } from 'nightingale-logger';
2
2
  import type { Handler } from 'nightingale-types';
3
3
 
4
- if (__DEV__ && global.__NIGHTINGALE_GLOBAL_HANDLERS) {
4
+ const globalOrWindow: typeof global =
5
+ typeof global !== 'undefined' ? global : (window as typeof global);
6
+
7
+ if (__DEV__ && globalOrWindow.__NIGHTINGALE_GLOBAL_HANDLERS) {
5
8
  throw new Error('nightingale: update all to ^5.0.0');
6
9
  }
7
10
 
8
- if (!global.__NIGHTINGALE_CONFIG) {
9
- global.__NIGHTINGALE_CONFIG = [];
10
- global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<
11
+ if (!globalOrWindow.__NIGHTINGALE_CONFIG) {
12
+ globalOrWindow.__NIGHTINGALE_CONFIG = [];
13
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<
11
14
  string,
12
15
  ComputedConfigForKey
13
16
  >();
14
- global.__NIGHTINGALE_CONFIG_DEFAULT = { handlers: [], processors: [] };
17
+ globalOrWindow.__NIGHTINGALE_CONFIG_DEFAULT = {
18
+ handlers: [],
19
+ processors: [],
20
+ };
15
21
  }
16
22
 
17
23
  function clearCache(): void {
18
- global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
24
+ globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();
19
25
  }
20
26
 
21
27
  function handleConfig(config: Config): Config {
@@ -56,18 +62,18 @@ function handleConfig(config: Config): Config {
56
62
  }
57
63
 
58
64
  export function configure(config: Config[]): void {
59
- if (global.__NIGHTINGALE_CONFIG.length > 0) {
65
+ if (globalOrWindow.__NIGHTINGALE_CONFIG.length > 0) {
60
66
  // eslint-disable-next-line no-console
61
67
  console.log('nightingale: warning: config overridden');
62
68
  }
63
69
 
64
70
  clearCache();
65
- global.__NIGHTINGALE_CONFIG = config.map(handleConfig);
71
+ globalOrWindow.__NIGHTINGALE_CONFIG = config.map(handleConfig);
66
72
  }
67
73
 
68
74
  export function addConfig(config: Config, unshift = false): void {
69
75
  config = handleConfig(config);
70
- global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
76
+ globalOrWindow.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);
71
77
  clearCache();
72
78
  }
73
79
 
@@ -77,10 +83,10 @@ const configIsForKey = (key: string) => (config: Config) => {
77
83
  return true;
78
84
  };
79
85
 
80
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (
86
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (
81
87
  key: string,
82
88
  ): ComputedConfigForKey => {
83
- const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;
89
+ const globalCache = globalOrWindow.__NIGHTINGALE_LOGGER_MAP_CACHE;
84
90
 
85
91
  const existingCache = globalCache.get(key);
86
92
 
@@ -93,7 +99,7 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (
93
99
  processors: [],
94
100
  };
95
101
 
96
- global.__NIGHTINGALE_CONFIG
102
+ globalOrWindow.__NIGHTINGALE_CONFIG
97
103
  .filter(configIsForKey(key))
98
104
  .some((config: Config) => {
99
105
  if (config.handlers) loggerConfig.handlers.push(...config.handlers);
@@ -105,13 +111,13 @@ global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (
105
111
  return loggerConfig;
106
112
  };
107
113
 
108
- if (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
109
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (
114
+ if (globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
115
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (
110
116
  key: string,
111
117
  level: number,
112
118
  ): ComputedConfigForKey => {
113
119
  const { handlers, processors }: ComputedConfigForKey =
114
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
120
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
115
121
 
116
122
  return {
117
123
  handlers: handlers.filter(
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-node14.cjs.js","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["import type { ComputedConfigForKey, Config } from 'nightingale-logger';\nimport type { Handler } from 'nightingale-types';\n\nif (__DEV__ && global.__NIGHTINGALE_GLOBAL_HANDLERS) {\n throw new Error('nightingale: update all to ^5.0.0');\n}\n\nif (!global.__NIGHTINGALE_CONFIG) {\n global.__NIGHTINGALE_CONFIG = [];\n global.__NIGHTINGALE_LOGGER_MAP_CACHE = new Map<\n string,\n ComputedConfigForKey\n >();\n global.__NIGHTINGALE_CONFIG_DEFAULT = { handlers: [], processors: [] };\n}\n\nfunction clearCache(): void {\n global.__NIGHTINGALE_LOGGER_MAP_CACHE.clear();\n}\n\nfunction handleConfig(config: Config): Config {\n if (config.keys) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n if (config.key) {\n throw new Error('Cannot have key and keys for the same config');\n }\n } else if (config.key) {\n if (config.pattern) {\n throw new Error('Cannot have key and pattern for the same config');\n }\n config.keys = [config.key];\n delete config.key;\n }\n\n if (config.handler) {\n if (config.handlers) {\n throw new Error('Cannot have handler and handlers for the same config');\n }\n config.handlers = [config.handler];\n delete config.handler;\n }\n\n if (config.processor) {\n if (config.processors) {\n throw new Error(\n 'Cannot have processors and processors for the same config',\n );\n }\n config.processors = [config.processor];\n delete config.processor;\n }\n\n return config;\n}\n\nexport function configure(config: Config[]): void {\n if (global.__NIGHTINGALE_CONFIG.length > 0) {\n // eslint-disable-next-line no-console\n console.log('nightingale: warning: config overridden');\n }\n\n clearCache();\n global.__NIGHTINGALE_CONFIG = config.map(handleConfig);\n}\n\nexport function addConfig(config: Config, unshift = false): void {\n config = handleConfig(config);\n global.__NIGHTINGALE_CONFIG[unshift ? 'unshift' : 'push'](config);\n clearCache();\n}\n\nconst configIsForKey = (key: string) => (config: Config) => {\n if (config.keys) return config.keys.includes(key);\n if (config.pattern) return config.pattern.test(key);\n return true;\n};\n\nglobal.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (\n key: string,\n): ComputedConfigForKey => {\n const globalCache = global.__NIGHTINGALE_LOGGER_MAP_CACHE;\n\n const existingCache = globalCache.get(key);\n\n if (existingCache) {\n return existingCache;\n }\n\n const loggerConfig: ComputedConfigForKey = {\n handlers: [],\n processors: [],\n };\n\n global.__NIGHTINGALE_CONFIG\n .filter(configIsForKey(key))\n .some((config: Config) => {\n if (config.handlers) loggerConfig.handlers.push(...config.handlers);\n if (config.processors) loggerConfig.processors.push(...config.processors);\n return config.stop;\n });\n\n globalCache.set(key, loggerConfig);\n return loggerConfig;\n};\n\nif (global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler: Handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n","import { Logger } from 'nightingale-logger';\n\nexport { Logger } from 'nightingale-logger';\nexport { Level, Level as levels } from 'nightingale-levels';\nexport { configure, addConfig } from './config';\n\n/**\n * listen to uncaughtException and unhandledRejection\n * @param {Logger} [logger]\n */\nexport function listenUnhandledErrors(\n logger: Logger = new Logger(\n 'nightingale:listenUnhandledErrors',\n 'UnhandledErrors',\n ),\n): void {\n process.on('uncaughtException', (error) => {\n logger.error('uncaughtException', { error, unhandled: true });\n });\n process.on('unhandledRejection', (error) => {\n logger.error('unhandledRejection', { error, unhandled: true });\n });\n}\n"],"names":["__DEV__","global","__NIGHTINGALE_GLOBAL_HANDLERS","Error","__NIGHTINGALE_CONFIG","__NIGHTINGALE_LOGGER_MAP_CACHE","Map","__NIGHTINGALE_CONFIG_DEFAULT","handlers","processors","clearCache","clear","handleConfig","config","keys","pattern","key","handler","processor","configure","length","console","log","map","addConfig","unshift","configIsForKey","includes","test","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","globalCache","existingCache","get","loggerConfig","filter","some","push","stop","set","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","level","minLevel","isHandling","listenUnhandledErrors","logger","Logger","process","on","error","unhandled"],"mappings":"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"}