@verdaccio/logger 6.0.0-6-next.4 → 6.0.0-6-next.5
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/CHANGELOG.md +6 -0
- package/build/logger.js +1 -1
- package/build/logger.js.map +1 -1
- package/package.json +4 -4
- package/src/logger.ts +1 -1
- package/test/logger.spec.ts +25 -0
package/CHANGELOG.md
CHANGED
package/build/logger.js
CHANGED
package/build/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/logger.ts"],"names":["debug","logger","isProd","process","env","NODE_ENV","DEFAULT_LOG_FORMAT","createLogger","options","level","destination","pino","format","prettyPrintOptions","suppressFlushSyncWarning","_","isNil","pinoConfig","customLevels","http","serializers","err","stdSerializers","req","res","Object","assign","prettyPrint","levelFirst","prettyStamp","prettifier","require","DEBUG","on","lvl","val","prevLvl","prevVal","getLogger","emitWarning","DEFAULT_LOGGER_CONF","type","setup","isLegacyConf","Array","isArray","deprecateMessage","loggerConfig","path","finalHandler","final","finalLogger","event","info","error","exit"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,KAAK,GAAG,oBAAW,kBAAX,CAAd;AAEO,IAAIC,MAAJ;;;AAEP,SAASC,MAAT,GAAkB;AAChB,SAAOC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAhC;AACD;;AAED,MAAMC,kBAAkB,GAAGJ,MAAM,KAAK,MAAL,GAAc,QAA/C;;AAUO,SAASK,YAAT,CACLC,OAAO,GAAG;AAAEC,EAAAA,KAAK,EAAE;AAAT,CADL,EAELC,WAAW,GAAGC,cAAKD,WAAL,CAAiB,CAAjB,CAFT,EAGLE,MAAiB,GAAGN,kBAHf,EAILO,kBAAkB,GAAG;AACnB;AACA;AACAC,EAAAA,wBAAwB,EAAE;AAHP,CAJhB,EASL;AACA,MAAIC,gBAAEC,KAAF,CAAQJ,MAAR,CAAJ,EAAqB;AACnBA,IAAAA,MAAM,GAAGN,kBAAT;AACD;;AAED,MAAIW,UAAU;AACZC,IAAAA,YAAY,EAAE;AACZC,MAAAA,IAAI,EAAE;AADM;AADF,KAITX,OAJS;AAKZC,IAAAA,KAAK,EAAED,OAAO,CAACC,KALH;AAMZW,IAAAA,WAAW,EAAE;AACXC,MAAAA,GAAG,EAAEV,cAAKW,cAAL,CAAoBD,GADd;AAEXE,MAAAA,GAAG,EAAEZ,cAAKW,cAAL,CAAoBC,GAFd;AAGXC,MAAAA,GAAG,EAAEb,cAAKW,cAAL,CAAoBE;AAHd;AAND,IAAd;;AAaAxB,EAAAA,KAAK,CAAC,oBAAD,EAAuB,CAACE,MAAM,EAA9B,CAAL,CAlBA,CAmBA;;AACA,MAAI,CAACU,MAAM,KAAKN,kBAAX,IAAiCM,MAAM,KAAK,MAA7C,KAAwDV,MAAM,OAAO,KAAzE,EAAgF;AAC9Ee,IAAAA,UAAU,GAAGQ,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBT,UAAlB,EAA8B;AACzC;AACA;AACAU,MAAAA,WAAW;AACTC,QAAAA,UAAU,EAAE,IADH;AAETC,QAAAA,WAAW,EAAEjB,MAAM,KAAK;AAFf,SAGNC,kBAHM,CAH8B;AAQzCiB,MAAAA,UAAU,EAAEC,OAAO,CAAC,4BAAD;AARsB,KAA9B,CAAb;AAUD;;AACD,QAAM9B,MAAM,GAAG,mBAAKgB,UAAL,EAAiBP,WAAjB,CAAf;;AAEA,MAAIP,OAAO,CAACC,GAAR,CAAY4B,KAAhB,EAAuB;AACrB/B,IAAAA,MAAM,CAACgC,EAAP,CAAU,cAAV,EAA0B,CAACC,GAAD,EAAMC,GAAN,EAAWC,OAAX,EAAoBC,OAApB,KAAgC;AACxDrC,MAAAA,KAAK,CAAC,gCAAD,EAAmCkC,GAAnC,EAAwCC,GAAxC,EAA6CC,OAA7C,EAAsDC,OAAtD,CAAL;AACD,KAFD;AAGD;;AAED,SAAOpC,MAAP;AACD;;AAEM,SAASqC,SAAT,GAAqB;AAC1B,MAAIvB,gBAAEC,KAAF,CAAQf,MAAR,CAAJ,EAAqB;AACnB;AACAE,IAAAA,OAAO,CAACoC,WAAR,CAAoB,uBAApB;AACA;AACD;;AAED,SAAOtC,MAAP;AACD;;AAED,MAAMuC,mBAAqC,GAAG;AAC5CC,EAAAA,IAAI,EAAE,QADsC;AAE5C7B,EAAAA,MAAM,EAAE,QAFoC;AAG5CH,EAAAA,KAAK,EAAE;AAHqC,CAA9C;;AAgBO,SAASiC,KAAT,CAAelC,OAAwC,
|
|
1
|
+
{"version":3,"sources":["../src/logger.ts"],"names":["debug","logger","isProd","process","env","NODE_ENV","DEFAULT_LOG_FORMAT","createLogger","options","level","destination","pino","format","prettyPrintOptions","suppressFlushSyncWarning","_","isNil","pinoConfig","customLevels","http","serializers","err","stdSerializers","req","res","Object","assign","prettyPrint","levelFirst","prettyStamp","prettifier","require","DEBUG","on","lvl","val","prevLvl","prevVal","getLogger","emitWarning","DEFAULT_LOGGER_CONF","type","setup","isLegacyConf","Array","isArray","deprecateMessage","loggerConfig","path","finalHandler","final","finalLogger","event","info","error","exit"],"mappings":"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","sourcesContent":["import pino from 'pino';\nimport _ from 'lodash';\nimport buildDebug from 'debug';\n\nconst debug = buildDebug('verdaccio:logger');\n\nexport let logger;\n\nfunction isProd() {\n return process.env.NODE_ENV === 'production';\n}\n\nconst DEFAULT_LOG_FORMAT = isProd() ? 'json' : 'pretty';\n\nexport type LogPlugin = {\n dest: string;\n options?: any[];\n};\n\nexport type LogType = 'file' | 'stdout';\nexport type LogFormat = 'json' | 'pretty-timestamped' | 'pretty';\n\nexport function createLogger(\n options = { level: 'http' },\n destination = pino.destination(1),\n format: LogFormat = DEFAULT_LOG_FORMAT,\n prettyPrintOptions = {\n // we hide warning since the prettifier should not be used in production\n // https://getpino.io/#/docs/pretty?id=prettifier-api\n suppressFlushSyncWarning: true,\n }\n) {\n if (_.isNil(format)) {\n format = DEFAULT_LOG_FORMAT;\n }\n\n let pinoConfig = {\n customLevels: {\n http: 25,\n },\n ...options,\n level: options.level,\n serializers: {\n err: pino.stdSerializers.err,\n req: pino.stdSerializers.req,\n res: pino.stdSerializers.res,\n },\n };\n\n debug('has prettifier? %o', !isProd());\n // pretty logs are not allowed in production for performance reasons\n if ((format === DEFAULT_LOG_FORMAT || format !== 'json') && isProd() === false) {\n pinoConfig = Object.assign({}, pinoConfig, {\n // more info\n // https://github.com/pinojs/pino-pretty/issues/37\n prettyPrint: {\n levelFirst: true,\n prettyStamp: format === 'pretty-timestamped',\n ...prettyPrintOptions,\n },\n prettifier: require('@verdaccio/logger-prettify'),\n });\n }\n const logger = pino(pinoConfig, destination);\n\n if (process.env.DEBUG) {\n logger.on('level-change', (lvl, val, prevLvl, prevVal) => {\n debug('%s (%d) was changed to %s (%d)', lvl, val, prevLvl, prevVal);\n });\n }\n\n return logger;\n}\n\nexport function getLogger() {\n if (_.isNil(logger)) {\n // FIXME: not sure about display here a warning\n process.emitWarning('logger is not defined');\n return;\n }\n\n return logger;\n}\n\nconst DEFAULT_LOGGER_CONF: LoggerConfigItem = {\n type: 'stdout',\n format: 'pretty',\n level: 'http',\n};\n\nexport type LoggerConfigItem = {\n type?: LogType;\n plugin?: LogPlugin;\n format?: LogFormat;\n path?: string;\n level?: string;\n};\n\nexport type LoggerConfig = LoggerConfigItem[];\n\nexport function setup(options: LoggerConfig | LoggerConfigItem = DEFAULT_LOGGER_CONF) {\n debug('setup logger');\n const isLegacyConf = Array.isArray(options);\n if (isLegacyConf) {\n const deprecateMessage =\n 'deprecate: multiple logger configuration is deprecated, please check the migration guide.';\n process.emitWarning(deprecateMessage);\n }\n\n // verdaccio 5 does not allow multiple logger configuration\n // backward compatible, pick only the first option\n // next major will thrown an error\n let loggerConfig = isLegacyConf ? options[0] : options;\n if (!loggerConfig?.level) {\n loggerConfig = Object.assign(\n {},\n {\n level: 'http',\n },\n loggerConfig\n );\n }\n const pinoConfig = { level: loggerConfig.level };\n if (loggerConfig.type === 'file') {\n debug('logging file enabled');\n logger = createLogger(pinoConfig, pino.destination(loggerConfig.path), loggerConfig.format);\n } else if (loggerConfig.type === 'rotating-file') {\n process.emitWarning(\n 'rotating-file type is not longer supported, consider use [logrotate] instead'\n );\n debug('logging stdout enabled');\n logger = createLogger(pinoConfig, pino.destination(1), loggerConfig.format);\n } else {\n debug('logging stdout enabled');\n logger = createLogger(pinoConfig, pino.destination(1), loggerConfig.format);\n }\n\n if (isProd()) {\n // why only on prod? https://github.com/pinojs/pino/issues/920#issuecomment-710807667\n const finalHandler = pino.final(logger, (err, finalLogger, event) => {\n finalLogger.info(`${event} caught`);\n if (err) {\n finalLogger.error(err, 'error caused exit');\n }\n process.exit(err ? 1 : 0);\n });\n\n process.on('uncaughtException', (err) => finalHandler(err, 'uncaughtException'));\n process.on('unhandledRejection', (err) => finalHandler(err as Error, 'unhandledRejection'));\n process.on('beforeExit', () => finalHandler(null, 'beforeExit'));\n process.on('exit', () => finalHandler(null, 'exit'));\n process.on('uncaughtException', (err) => finalHandler(err, 'uncaughtException'));\n process.on('SIGINT', () => finalHandler(null, 'SIGINT'));\n process.on('SIGQUIT', () => finalHandler(null, 'SIGQUIT'));\n process.on('SIGTERM', () => finalHandler(null, 'SIGTERM'));\n }\n\n return logger;\n}\n"],"file":"logger.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdaccio/logger",
|
|
3
|
-
"version": "6.0.0-6-next.
|
|
3
|
+
"version": "6.0.0-6-next.5",
|
|
4
4
|
"description": "logger",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"@verdaccio/logger-prettify": "6.0.0-alpha.3",
|
|
34
34
|
"debug": "4.3.2",
|
|
35
35
|
"lodash": "4.17.21",
|
|
36
|
-
"pino": "6.
|
|
36
|
+
"pino": "6.2.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@types/pino": "6.3.
|
|
40
|
-
"@verdaccio/types": "11.0.0-6-next.
|
|
39
|
+
"@types/pino": "6.3.3",
|
|
40
|
+
"@verdaccio/types": "11.0.0-6-next.8"
|
|
41
41
|
},
|
|
42
42
|
"funding": {
|
|
43
43
|
"type": "opencollective",
|
package/src/logger.ts
CHANGED
|
@@ -98,7 +98,7 @@ export type LoggerConfigItem = {
|
|
|
98
98
|
|
|
99
99
|
export type LoggerConfig = LoggerConfigItem[];
|
|
100
100
|
|
|
101
|
-
export function setup(options: LoggerConfig | LoggerConfigItem =
|
|
101
|
+
export function setup(options: LoggerConfig | LoggerConfigItem = DEFAULT_LOGGER_CONF) {
|
|
102
102
|
debug('setup logger');
|
|
103
103
|
const isLegacyConf = Array.isArray(options);
|
|
104
104
|
if (isLegacyConf) {
|
package/test/logger.spec.ts
CHANGED
|
@@ -13,4 +13,29 @@ describe('logger', () => {
|
|
|
13
13
|
// FIXME: check expect
|
|
14
14
|
// expect(spyOn).toHaveBeenCalledTimes(2);
|
|
15
15
|
});
|
|
16
|
+
|
|
17
|
+
test('throw deprecation warning if multiple loggers configured', () => {
|
|
18
|
+
const spy = jest.spyOn(process, 'emitWarning');
|
|
19
|
+
setup([
|
|
20
|
+
{
|
|
21
|
+
level: 'info',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
level: 'http',
|
|
25
|
+
},
|
|
26
|
+
]);
|
|
27
|
+
expect(spy).toHaveBeenCalledWith(
|
|
28
|
+
'deprecate: multiple logger configuration is deprecated, please check the migration guide.'
|
|
29
|
+
);
|
|
30
|
+
spy.mockRestore();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('regression: do not throw deprecation warning if no logger config is provided', () => {
|
|
34
|
+
const spy = jest.spyOn(process, 'emitWarning');
|
|
35
|
+
setup();
|
|
36
|
+
expect(spy).not.toHaveBeenCalledWith(
|
|
37
|
+
'deprecate: multiple logger configuration is deprecated, please check the migration guide.'
|
|
38
|
+
);
|
|
39
|
+
spy.mockRestore();
|
|
40
|
+
});
|
|
16
41
|
});
|