@lokalise/node-core 9.2.0 → 9.4.0
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/README.md +16 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/src/logging/loggerConfigResolver.d.ts +6 -0
- package/dist/src/logging/loggerConfigResolver.js +26 -1
- package/dist/src/logging/loggerConfigResolver.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -89,6 +89,22 @@ The library provides methods to resolve the default logging configuration. Publi
|
|
|
89
89
|
const logger = pino(loggerConfig)
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
+
- `resolveMonorepoLoggerConfiguration()`, which accepts as parameter an `appConfig`, defined by the `logLevel` and the `nodeEnv`. It mostly behaves the same as `resolveLoggerConfiguration`, with the exception of execution in `development environments`. Since monorepo services are usually ran concurrently, logs from `stdout` aren't easily accessible. For this reason this logging configuration writes development logs into files.
|
|
93
|
+
|
|
94
|
+
The method returns a logger configuration that should be used with `pino` library as in the following example:
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
const loggerConfig = resolveMonorepoLoggerConfiguration({
|
|
98
|
+
logLevel: 'warn',
|
|
99
|
+
nodeEnv: 'production',
|
|
100
|
+
append: false,
|
|
101
|
+
// targetFile: './logs/service.log' -- optional parameter, you can specify exact path for writing logs
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
const logger = pino(loggerConfig)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
|
|
92
108
|
## ConfigScope
|
|
93
109
|
|
|
94
110
|
`ConfigScope` is a class that provides a way to encapsulate a single config source (e. g. `process.env`) and produce a set of values out of it, defining constraints and transformations for them.
|
package/dist/index.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ export { chunk, callChunked, removeFalsy, removeNullish } from './src/utils/arra
|
|
|
11
11
|
export { groupBy, groupByUnique, pick, pickWithoutUndefined, copyWithoutUndefined, isEmptyObject, convertDateFieldsToIsoString, deepClone, } from './src/utils/objectUtils';
|
|
12
12
|
export { isInternalError, isStandardizedError, isObject, isPublicNonRecoverableError, hasMessage, } from './src/utils/typeUtils';
|
|
13
13
|
export { type StandardizedError } from './src/utils/typeUtils';
|
|
14
|
-
export { resolveLoggerConfiguration } from './src/logging/loggerConfigResolver';
|
|
15
|
-
export {
|
|
14
|
+
export { resolveLoggerConfiguration, resolveMonorepoLoggerConfiguration, } from './src/logging/loggerConfigResolver';
|
|
15
|
+
export type { AppLoggerConfig, MonorepoAppLoggerConfig } from './src/logging/loggerConfigResolver';
|
|
16
16
|
export { type ErrorReport, type ErrorReporter, type ErrorResolver, } from './src/errors/errorReporterTypes';
|
|
17
17
|
export { executeAsyncAndHandleGlobalErrors, executeAndHandleGlobalErrors, executeSettleAllAndHandleGlobalErrors, globalLogger, resolveGlobalErrorLogObject, } from './src/errors/globalErrorHandler';
|
|
18
18
|
export { type MayOmit } from './src/common/may-omit';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.waitAndRetry = exports.resolveGlobalErrorLogObject = exports.globalLogger = exports.executeSettleAllAndHandleGlobalErrors = exports.executeAndHandleGlobalErrors = exports.executeAsyncAndHandleGlobalErrors = exports.resolveLoggerConfiguration = exports.hasMessage = exports.isPublicNonRecoverableError = exports.isObject = exports.isStandardizedError = exports.isInternalError = exports.deepClone = exports.convertDateFieldsToIsoString = exports.isEmptyObject = exports.copyWithoutUndefined = exports.pickWithoutUndefined = exports.pick = exports.groupByUnique = exports.groupBy = exports.removeNullish = exports.removeFalsy = exports.callChunked = exports.chunk = exports.isFailure = exports.isSuccess = exports.failure = exports.success = exports.createRangeValidator = exports.ensureClosingSlashTransformer = exports.ConfigScope = exports.ResponseStatusError = exports.InternalError = exports.PublicNonRecoverableError = exports.buildClient = exports.httpClient = exports.sendPostBinary = exports.sendPost = exports.sendGet = exports.sendPatch = exports.sendDelete = exports.sendPutBinary = exports.sendPut = void 0;
|
|
3
|
+
exports.waitAndRetry = exports.resolveGlobalErrorLogObject = exports.globalLogger = exports.executeSettleAllAndHandleGlobalErrors = exports.executeAndHandleGlobalErrors = exports.executeAsyncAndHandleGlobalErrors = exports.resolveMonorepoLoggerConfiguration = exports.resolveLoggerConfiguration = exports.hasMessage = exports.isPublicNonRecoverableError = exports.isObject = exports.isStandardizedError = exports.isInternalError = exports.deepClone = exports.convertDateFieldsToIsoString = exports.isEmptyObject = exports.copyWithoutUndefined = exports.pickWithoutUndefined = exports.pick = exports.groupByUnique = exports.groupBy = exports.removeNullish = exports.removeFalsy = exports.callChunked = exports.chunk = exports.isFailure = exports.isSuccess = exports.failure = exports.success = exports.createRangeValidator = exports.ensureClosingSlashTransformer = exports.ConfigScope = exports.ResponseStatusError = exports.InternalError = exports.PublicNonRecoverableError = exports.buildClient = exports.httpClient = exports.sendPostBinary = exports.sendPost = exports.sendGet = exports.sendPatch = exports.sendDelete = exports.sendPutBinary = exports.sendPut = void 0;
|
|
4
4
|
var httpClient_1 = require("./src/http/httpClient");
|
|
5
5
|
Object.defineProperty(exports, "sendPut", { enumerable: true, get: function () { return httpClient_1.sendPut; } });
|
|
6
6
|
Object.defineProperty(exports, "sendPutBinary", { enumerable: true, get: function () { return httpClient_1.sendPutBinary; } });
|
|
@@ -50,6 +50,7 @@ Object.defineProperty(exports, "isPublicNonRecoverableError", { enumerable: true
|
|
|
50
50
|
Object.defineProperty(exports, "hasMessage", { enumerable: true, get: function () { return typeUtils_1.hasMessage; } });
|
|
51
51
|
var loggerConfigResolver_1 = require("./src/logging/loggerConfigResolver");
|
|
52
52
|
Object.defineProperty(exports, "resolveLoggerConfiguration", { enumerable: true, get: function () { return loggerConfigResolver_1.resolveLoggerConfiguration; } });
|
|
53
|
+
Object.defineProperty(exports, "resolveMonorepoLoggerConfiguration", { enumerable: true, get: function () { return loggerConfigResolver_1.resolveMonorepoLoggerConfiguration; } });
|
|
53
54
|
var globalErrorHandler_1 = require("./src/errors/globalErrorHandler");
|
|
54
55
|
Object.defineProperty(exports, "executeAsyncAndHandleGlobalErrors", { enumerable: true, get: function () { return globalErrorHandler_1.executeAsyncAndHandleGlobalErrors; } });
|
|
55
56
|
Object.defineProperty(exports, "executeAndHandleGlobalErrors", { enumerable: true, get: function () { return globalErrorHandler_1.executeAndHandleGlobalErrors; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,oDAc8B;AAb5B,qGAAA,OAAO,OAAA;AACP,2GAAA,aAAa,OAAA;AACb,wGAAA,UAAU,OAAA;AACV,uGAAA,SAAS,OAAA;AACT,qGAAA,OAAO,OAAA;AACP,sGAAA,QAAQ,OAAA;AACR,4GAAA,cAAc,OAAA;AACd,wGAAA,UAAU,OAAA;AACV,yGAAA,WAAW,OAAA;AAOb,oFAG+C;AAF7C,sIAAA,yBAAyB,OAAA;AAI3B,4DAImC;AAHjC,8GAAA,aAAa,OAAA;AAIf,wEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;AAE5B,wDAAsD;AAA7C,0GAAA,WAAW,OAAA;AACpB,sEAA+E;AAAtE,mIAAA,6BAA6B,OAAA;AACtC,kEAAoE;AAA3D,wHAAA,oBAAoB,OAAA;AAQ7B,8CAAyF;AAAnE,iGAAA,OAAO,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAE5D,qDAAuF;AAA9E,mGAAA,KAAK,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,2GAAA,aAAa,OAAA;AACvD,uDASgC;AAR9B,sGAAA,OAAO,OAAA;AACP,4GAAA,aAAa,OAAA;AACb,mGAAA,IAAI,OAAA;AACJ,mHAAA,oBAAoB,OAAA;AACpB,mHAAA,oBAAoB,OAAA;AACpB,4GAAA,aAAa,OAAA;AACb,2HAAA,4BAA4B,OAAA;AAC5B,wGAAA,SAAS,OAAA;AAGX,mDAM8B;AAL5B,4GAAA,eAAe,OAAA;AACf,gHAAA,mBAAmB,OAAA;AACnB,qGAAA,QAAQ,OAAA;AACR,wHAAA,2BAA2B,OAAA;AAC3B,uGAAA,UAAU,OAAA;AAIZ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,oDAc8B;AAb5B,qGAAA,OAAO,OAAA;AACP,2GAAA,aAAa,OAAA;AACb,wGAAA,UAAU,OAAA;AACV,uGAAA,SAAS,OAAA;AACT,qGAAA,OAAO,OAAA;AACP,sGAAA,QAAQ,OAAA;AACR,4GAAA,cAAc,OAAA;AACd,wGAAA,UAAU,OAAA;AACV,yGAAA,WAAW,OAAA;AAOb,oFAG+C;AAF7C,sIAAA,yBAAyB,OAAA;AAI3B,4DAImC;AAHjC,8GAAA,aAAa,OAAA;AAIf,wEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;AAE5B,wDAAsD;AAA7C,0GAAA,WAAW,OAAA;AACpB,sEAA+E;AAAtE,mIAAA,6BAA6B,OAAA;AACtC,kEAAoE;AAA3D,wHAAA,oBAAoB,OAAA;AAQ7B,8CAAyF;AAAnE,iGAAA,OAAO,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAE5D,qDAAuF;AAA9E,mGAAA,KAAK,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,2GAAA,aAAa,OAAA;AACvD,uDASgC;AAR9B,sGAAA,OAAO,OAAA;AACP,4GAAA,aAAa,OAAA;AACb,mGAAA,IAAI,OAAA;AACJ,mHAAA,oBAAoB,OAAA;AACpB,mHAAA,oBAAoB,OAAA;AACpB,4GAAA,aAAa,OAAA;AACb,2HAAA,4BAA4B,OAAA;AAC5B,wGAAA,SAAS,OAAA;AAGX,mDAM8B;AAL5B,4GAAA,eAAe,OAAA;AACf,gHAAA,mBAAmB,OAAA;AACnB,qGAAA,QAAQ,OAAA;AACR,wHAAA,2BAA2B,OAAA;AAC3B,uGAAA,UAAU,OAAA;AAIZ,2EAG2C;AAFzC,kIAAA,0BAA0B,OAAA;AAC1B,0IAAA,kCAAkC,OAAA;AASpC,sEAMwC;AALtC,uIAAA,iCAAiC,OAAA;AACjC,kIAAA,4BAA4B,OAAA;AAC5B,2IAAA,qCAAqC,OAAA;AACrC,kHAAA,YAAY,OAAA;AACZ,iIAAA,2BAA2B,OAAA;AAK7B,mDAAoD;AAA3C,yGAAA,YAAY,OAAA"}
|
|
@@ -2,5 +2,11 @@ import type { LoggerOptions } from 'pino';
|
|
|
2
2
|
export type AppLoggerConfig = {
|
|
3
3
|
logLevel: 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent';
|
|
4
4
|
nodeEnv: 'production' | 'development' | 'test';
|
|
5
|
+
base?: Record<string, unknown>;
|
|
5
6
|
};
|
|
7
|
+
export type MonorepoAppLoggerConfig = AppLoggerConfig & {
|
|
8
|
+
targetFile?: string;
|
|
9
|
+
append?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function resolveMonorepoLoggerConfiguration(appConfig: MonorepoAppLoggerConfig): LoggerOptions;
|
|
6
12
|
export declare function resolveLoggerConfiguration(appConfig: AppLoggerConfig): LoggerOptions;
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveLoggerConfiguration = void 0;
|
|
3
|
+
exports.resolveLoggerConfiguration = exports.resolveMonorepoLoggerConfiguration = void 0;
|
|
4
|
+
// Note that transports do not work in vitest, likely because pino attempts to run them in a separate worker
|
|
5
|
+
/* c8 ignore next 24 */
|
|
6
|
+
function resolveMonorepoLoggerConfiguration(appConfig) {
|
|
7
|
+
if (appConfig.nodeEnv !== 'development') {
|
|
8
|
+
return resolveLoggerConfiguration(appConfig);
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
level: appConfig.logLevel,
|
|
12
|
+
formatters: {
|
|
13
|
+
level: (label) => {
|
|
14
|
+
return { level: label };
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
transport: {
|
|
18
|
+
target: 'pino/file',
|
|
19
|
+
options: {
|
|
20
|
+
destination: appConfig.targetFile ?? './service.log',
|
|
21
|
+
mkdir: true,
|
|
22
|
+
append: appConfig.append ?? false,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.resolveMonorepoLoggerConfiguration = resolveMonorepoLoggerConfiguration;
|
|
4
28
|
function resolveLoggerConfiguration(appConfig) {
|
|
5
29
|
const config = {
|
|
6
30
|
level: appConfig.logLevel,
|
|
@@ -9,6 +33,7 @@ function resolveLoggerConfiguration(appConfig) {
|
|
|
9
33
|
return { level: label };
|
|
10
34
|
},
|
|
11
35
|
},
|
|
36
|
+
base: appConfig.base,
|
|
12
37
|
};
|
|
13
38
|
if (appConfig.nodeEnv !== 'production') {
|
|
14
39
|
config.transport = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loggerConfigResolver.js","sourceRoot":"","sources":["../../../src/logging/loggerConfigResolver.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"loggerConfigResolver.js","sourceRoot":"","sources":["../../../src/logging/loggerConfigResolver.ts"],"names":[],"mappings":";;;AAaA,4GAA4G;AAC5G,uBAAuB;AACvB,SAAgB,kCAAkC,CAChD,SAAkC;IAElC,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QACxC,OAAO,0BAA0B,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,QAAQ;QACzB,UAAU,EAAE;YACV,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;YACzB,CAAC;SACF;QACD,SAAS,EAAE;YACT,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE;gBACP,WAAW,EAAE,SAAS,CAAC,UAAU,IAAI,eAAe;gBACpD,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,KAAK;aAClC;SACF;KACF,CAAA;AACH,CAAC;AAvBD,gFAuBC;AAED,SAAgB,0BAA0B,CAAC,SAA0B;IACnE,MAAM,MAAM,GAAkB;QAC5B,KAAK,EAAE,SAAS,CAAC,QAAQ;QACzB,UAAU,EAAE;YACV,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;YACzB,CAAC;SACF;QACD,IAAI,EAAE,SAAS,CAAC,IAAI;KACrB,CAAA;IACD,IAAI,SAAS,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,GAAG;YACjB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,cAAc;gBAC7B,MAAM,EAAE,cAAc;aACvB;SACF,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AArBD,gEAqBC"}
|