@autofleet/logger 4.1.0 → 4.2.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/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +30 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +2 -126
- package/dist/index.js.map +1 -0
- package/package.json +22 -10
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var a=require('pino'),pinoCloudLogging=require('pino-cloud-logging');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var a__default=/*#__PURE__*/_interopDefault(a);var l=(t=>(t.trace="trace",t.debug="debug",t.info="info",t.warn="warn",t.error="error",t.fatal="fatal",t))(l||{}),L=n=>n||(process.env.LOG_LEVEL?process.env.LOG_LEVEL:process.env.NODE_ENV&&["production","staging","test"].includes(process.env.NODE_ENV)?"info":(process.env.NODE_ENV==="development","debug")),u=(n,e)=>{let r;return process.env.NODE_ENV==="production"?r=a__default.default(pinoCloudLogging.gcpLogOptions({level:process.env.PINO_LOG_LEVEL||"info",...e})):r=a__default.default({level:process.env.PINO_LOG_LEVEL||"info",transport:{target:"pino-pretty",options:{colorize:true}},...e}),r.level=n,r},s=class{#r=[];#e;constructor(e){this.#e=u(L(e),{mixin:()=>this.addMetadata(),serializers:{...a.stdSerializers,e:a.stdSerializers.errWithCause,err:a.stdSerializers.errWithCause,error:a.stdSerializers.errWithCause,errors(r){return Array.isArray(r)?r.map(a.stdSerializers.errWithCause):a.stdSerializers.errWithCause(r)}}});}winstonLikeLoggerCall(e,r,i){i?this.#e[e](i,r):this.#e[e](r);}addMetadata(){let e={};return this.#r.forEach(r=>{let i=r();Object.assign(e,i);}),e}addContextMiddleware(e){this.#r.push(e);}trace(e,r){this.winstonLikeLoggerCall("trace",e,r);}debug(e,r){this.winstonLikeLoggerCall("debug",e,r);}info(e,r){this.winstonLikeLoggerCall("info",e,r);}warn(e,r){this.winstonLikeLoggerCall("warn",e,r);}error(e,r){this.winstonLikeLoggerCall("error",e,r);}fatal(e,r){this.winstonLikeLoggerCall("fatal",e,r);}child(e){return this.#e.child(e)}get level(){return this.#e.level}},p=n=>new s(n);exports.LogLevel=l;exports.LoggerInstanceManager=s;exports.default=p;//# sourceMappingURL=index.cjs.map
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["LogLevel","getLevel","logLevel","createLoggerInstance","level","options","loggerInstance","Pino","gcpLogOptions","LoggerInstanceManager","#contextMiddlewares","#logger","stdSerializers","val","message","meta","newMetadata","middleware","metadata","index_default","loglevel"],"mappings":"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","file":"index.cjs","sourcesContent":["import Pino, { LoggerOptions, stdSerializers } from 'pino';\nimport { gcpLogOptions } from 'pino-cloud-logging';\n\nexport enum LogLevel {\n trace = 'trace',\n debug = 'debug',\n info = 'info',\n warn = 'warn',\n error = 'error',\n fatal = 'fatal',\n}\n\ntype LogLevels = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst getLevel = (logLevel?: LogLevel): LogLevel => {\n if (logLevel) return logLevel;\n if (process.env.LOG_LEVEL) return process.env.LOG_LEVEL as LogLevel;\n if (process.env.NODE_ENV && ['production', 'staging', 'test'].includes(process.env.NODE_ENV)) return LogLevel.info;\n if (process.env.NODE_ENV === 'development') return LogLevel.debug;\n return LogLevel.debug;\n};\n\nconst createLoggerInstance = (level: LogLevel, options: Omit<LoggerOptions, 'transport'>) => {\n let loggerInstance;\n if (process.env.NODE_ENV === 'production') {\n loggerInstance = Pino(gcpLogOptions({\n level: process.env.PINO_LOG_LEVEL || 'info',\n ...options,\n } as object));\n } else {\n loggerInstance = Pino({\n level: process.env.PINO_LOG_LEVEL || 'info',\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n ...options,\n });\n }\n loggerInstance.level = level;\n return loggerInstance;\n};\n\ntype MiddlewareFunction = () => Record<string, unknown>;\n\nexport class LoggerInstanceManager {\n #contextMiddlewares: MiddlewareFunction[] = [];\n\n #logger: Pino.Logger;\n\n constructor(logLevel?: LogLevel) {\n this.#logger = createLoggerInstance(getLevel(logLevel), {\n mixin: () => this.addMetadata(),\n serializers: {\n ...stdSerializers,\n e: stdSerializers.errWithCause,\n err: stdSerializers.errWithCause,\n error: stdSerializers.errWithCause,\n errors(val) {\n if (Array.isArray(val)) {\n return val.map(stdSerializers.errWithCause);\n }\n return stdSerializers.errWithCause(val);\n },\n },\n });\n }\n\n // To support winston like logging in pino\n winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown) {\n if (meta) {\n this.#logger[logLevel](meta, message);\n } else {\n this.#logger[logLevel](message);\n }\n }\n\n addMetadata(): Record<string, unknown> {\n const newMetadata = {};\n this.#contextMiddlewares.forEach((middleware) => {\n const metadata = middleware();\n Object.assign(newMetadata, metadata);\n });\n return newMetadata;\n }\n\n addContextMiddleware(middleware: MiddlewareFunction) {\n this.#contextMiddlewares.push(middleware);\n }\n\n trace(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.trace, message, meta);\n }\n\n debug(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.debug, message, meta);\n }\n\n info(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.info, message, meta);\n }\n\n warn(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.warn, message, meta);\n }\n\n error(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.error, message, meta);\n }\n\n fatal(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.fatal, message, meta);\n }\n\n child(metadata: Record<string, unknown>) {\n return this.#logger.child(metadata);\n }\n\n get level() {\n return this.#logger.level;\n }\n}\n\nexport default (loglevel?: LogLevels): LoggerInstanceManager => new LoggerInstanceManager(loglevel as LogLevel);\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import Pino from 'pino';
|
|
2
|
+
|
|
3
|
+
declare enum LogLevel {
|
|
4
|
+
trace = "trace",
|
|
5
|
+
debug = "debug",
|
|
6
|
+
info = "info",
|
|
7
|
+
warn = "warn",
|
|
8
|
+
error = "error",
|
|
9
|
+
fatal = "fatal"
|
|
10
|
+
}
|
|
11
|
+
type LogLevels = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
12
|
+
type MiddlewareFunction = () => Record<string, unknown>;
|
|
13
|
+
declare class LoggerInstanceManager {
|
|
14
|
+
#private;
|
|
15
|
+
constructor(logLevel?: LogLevel);
|
|
16
|
+
winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown): void;
|
|
17
|
+
addMetadata(): Record<string, unknown>;
|
|
18
|
+
addContextMiddleware(middleware: MiddlewareFunction): void;
|
|
19
|
+
trace(message: string, meta?: unknown): void;
|
|
20
|
+
debug(message: string, meta?: unknown): void;
|
|
21
|
+
info(message: string, meta?: unknown): void;
|
|
22
|
+
warn(message: string, meta?: unknown): void;
|
|
23
|
+
error(message: string, meta?: unknown): void;
|
|
24
|
+
fatal(message: string, meta?: unknown): void;
|
|
25
|
+
child(metadata: Record<string, unknown>): Pino.Logger<never>;
|
|
26
|
+
get level(): Pino.LevelWithSilentOrString;
|
|
27
|
+
}
|
|
28
|
+
declare const _default: (loglevel?: LogLevels) => LoggerInstanceManager;
|
|
29
|
+
|
|
30
|
+
export { LogLevel, LoggerInstanceManager, _default as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Pino from 'pino';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
declare enum LogLevel {
|
|
3
4
|
trace = "trace",
|
|
4
5
|
debug = "debug",
|
|
5
6
|
info = "info",
|
|
@@ -9,9 +10,8 @@ export declare enum LogLevel {
|
|
|
9
10
|
}
|
|
10
11
|
type LogLevels = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
11
12
|
type MiddlewareFunction = () => Record<string, unknown>;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
logger: Pino.Logger;
|
|
13
|
+
declare class LoggerInstanceManager {
|
|
14
|
+
#private;
|
|
15
15
|
constructor(logLevel?: LogLevel);
|
|
16
16
|
winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown): void;
|
|
17
17
|
addMetadata(): Record<string, unknown>;
|
|
@@ -26,4 +26,5 @@ export declare class LoggerInstanceManager {
|
|
|
26
26
|
get level(): Pino.LevelWithSilentOrString;
|
|
27
27
|
}
|
|
28
28
|
declare const _default: (loglevel?: LogLevels) => LoggerInstanceManager;
|
|
29
|
-
|
|
29
|
+
|
|
30
|
+
export { LogLevel, LoggerInstanceManager, _default as default };
|
package/dist/index.js
CHANGED
|
@@ -1,126 +1,2 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.LoggerInstanceManager = exports.LogLevel = void 0;
|
|
27
|
-
const pino_1 = __importStar(require("pino"));
|
|
28
|
-
const pino_cloud_logging_1 = require("pino-cloud-logging");
|
|
29
|
-
// eslint-disable-next-line no-shadow
|
|
30
|
-
var LogLevel;
|
|
31
|
-
(function (LogLevel) {
|
|
32
|
-
LogLevel["trace"] = "trace";
|
|
33
|
-
LogLevel["debug"] = "debug";
|
|
34
|
-
LogLevel["info"] = "info";
|
|
35
|
-
LogLevel["warn"] = "warn";
|
|
36
|
-
LogLevel["error"] = "error";
|
|
37
|
-
LogLevel["fatal"] = "fatal";
|
|
38
|
-
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
39
|
-
const getLevel = (logLevel) => {
|
|
40
|
-
if (logLevel)
|
|
41
|
-
return logLevel;
|
|
42
|
-
if (process.env.LOG_LEVEL)
|
|
43
|
-
return process.env.LOG_LEVEL;
|
|
44
|
-
if (process.env.NODE_ENV && ['production', 'staging', 'test'].includes(process.env.NODE_ENV))
|
|
45
|
-
return LogLevel.info;
|
|
46
|
-
if (process.env.NODE_ENV === 'development')
|
|
47
|
-
return LogLevel.debug;
|
|
48
|
-
return LogLevel.debug;
|
|
49
|
-
};
|
|
50
|
-
const createLoggerInstance = (level, options) => {
|
|
51
|
-
let loggerInstance;
|
|
52
|
-
if (process.env.NODE_ENV === 'production') {
|
|
53
|
-
loggerInstance = (0, pino_1.default)((0, pino_cloud_logging_1.gcpLogOptions)(Object.assign({ level: process.env.PINO_LOG_LEVEL || 'info' }, options)));
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
loggerInstance = (0, pino_1.default)(Object.assign({ level: process.env.PINO_LOG_LEVEL || 'info', transport: {
|
|
57
|
-
target: 'pino-pretty',
|
|
58
|
-
options: {
|
|
59
|
-
colorize: true,
|
|
60
|
-
},
|
|
61
|
-
} }, options));
|
|
62
|
-
}
|
|
63
|
-
loggerInstance.level = level;
|
|
64
|
-
return loggerInstance;
|
|
65
|
-
};
|
|
66
|
-
class LoggerInstanceManager {
|
|
67
|
-
constructor(logLevel) {
|
|
68
|
-
this.contextMiddlewares = [];
|
|
69
|
-
this.logger = createLoggerInstance(getLevel(logLevel), {
|
|
70
|
-
mixin: () => this.addMetadata(),
|
|
71
|
-
serializers: Object.assign(Object.assign({}, pino_1.stdSerializers), { e: pino_1.stdSerializers.errWithCause, err: pino_1.stdSerializers.errWithCause, error: pino_1.stdSerializers.errWithCause, errors(val) {
|
|
72
|
-
if (Array.isArray(val)) {
|
|
73
|
-
return val.map(pino_1.stdSerializers.errWithCause);
|
|
74
|
-
}
|
|
75
|
-
return pino_1.stdSerializers.errWithCause(val);
|
|
76
|
-
} }),
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
// To support winston like logging in pino
|
|
80
|
-
winstonLikeLoggerCall(logLevel, message, meta) {
|
|
81
|
-
if (meta) {
|
|
82
|
-
this.logger[logLevel](meta, message);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
this.logger[logLevel](message);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
addMetadata() {
|
|
89
|
-
const newMetadata = {};
|
|
90
|
-
this.contextMiddlewares.forEach((middleware) => {
|
|
91
|
-
const metadata = middleware();
|
|
92
|
-
Object.assign(newMetadata, metadata);
|
|
93
|
-
});
|
|
94
|
-
return newMetadata;
|
|
95
|
-
}
|
|
96
|
-
addContextMiddleware(middleware) {
|
|
97
|
-
this.contextMiddlewares.push(middleware);
|
|
98
|
-
}
|
|
99
|
-
trace(message, meta) {
|
|
100
|
-
this.winstonLikeLoggerCall(LogLevel.trace, message, meta);
|
|
101
|
-
}
|
|
102
|
-
debug(message, meta) {
|
|
103
|
-
this.winstonLikeLoggerCall(LogLevel.debug, message, meta);
|
|
104
|
-
}
|
|
105
|
-
info(message, meta) {
|
|
106
|
-
this.winstonLikeLoggerCall(LogLevel.info, message, meta);
|
|
107
|
-
}
|
|
108
|
-
warn(message, meta) {
|
|
109
|
-
this.winstonLikeLoggerCall(LogLevel.warn, message, meta);
|
|
110
|
-
}
|
|
111
|
-
error(message, meta) {
|
|
112
|
-
this.winstonLikeLoggerCall(LogLevel.error, message, meta);
|
|
113
|
-
}
|
|
114
|
-
fatal(message, meta) {
|
|
115
|
-
this.winstonLikeLoggerCall(LogLevel.fatal, message, meta);
|
|
116
|
-
}
|
|
117
|
-
child(metadata) {
|
|
118
|
-
return this.logger.child(metadata);
|
|
119
|
-
}
|
|
120
|
-
get level() {
|
|
121
|
-
return this.logger.level;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
exports.LoggerInstanceManager = LoggerInstanceManager;
|
|
125
|
-
// eslint-disable-next-line max-len
|
|
126
|
-
exports.default = (loglevel) => new LoggerInstanceManager(loglevel);
|
|
1
|
+
import a,{stdSerializers}from'pino';import {gcpLogOptions}from'pino-cloud-logging';var l=(t=>(t.trace="trace",t.debug="debug",t.info="info",t.warn="warn",t.error="error",t.fatal="fatal",t))(l||{}),L=n=>n||(process.env.LOG_LEVEL?process.env.LOG_LEVEL:process.env.NODE_ENV&&["production","staging","test"].includes(process.env.NODE_ENV)?"info":(process.env.NODE_ENV==="development","debug")),u=(n,e)=>{let r;return process.env.NODE_ENV==="production"?r=a(gcpLogOptions({level:process.env.PINO_LOG_LEVEL||"info",...e})):r=a({level:process.env.PINO_LOG_LEVEL||"info",transport:{target:"pino-pretty",options:{colorize:true}},...e}),r.level=n,r},s=class{#r=[];#e;constructor(e){this.#e=u(L(e),{mixin:()=>this.addMetadata(),serializers:{...stdSerializers,e:stdSerializers.errWithCause,err:stdSerializers.errWithCause,error:stdSerializers.errWithCause,errors(r){return Array.isArray(r)?r.map(stdSerializers.errWithCause):stdSerializers.errWithCause(r)}}});}winstonLikeLoggerCall(e,r,i){i?this.#e[e](i,r):this.#e[e](r);}addMetadata(){let e={};return this.#r.forEach(r=>{let i=r();Object.assign(e,i);}),e}addContextMiddleware(e){this.#r.push(e);}trace(e,r){this.winstonLikeLoggerCall("trace",e,r);}debug(e,r){this.winstonLikeLoggerCall("debug",e,r);}info(e,r){this.winstonLikeLoggerCall("info",e,r);}warn(e,r){this.winstonLikeLoggerCall("warn",e,r);}error(e,r){this.winstonLikeLoggerCall("error",e,r);}fatal(e,r){this.winstonLikeLoggerCall("fatal",e,r);}child(e){return this.#e.child(e)}get level(){return this.#e.level}},p=n=>new s(n);export{l as LogLevel,s as LoggerInstanceManager,p as default};//# sourceMappingURL=index.js.map
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["LogLevel","getLevel","logLevel","createLoggerInstance","level","options","loggerInstance","Pino","gcpLogOptions","LoggerInstanceManager","#contextMiddlewares","#logger","stdSerializers","val","message","meta","newMetadata","middleware","metadata","index_default","loglevel"],"mappings":"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","file":"index.js","sourcesContent":["import Pino, { LoggerOptions, stdSerializers } from 'pino';\nimport { gcpLogOptions } from 'pino-cloud-logging';\n\nexport enum LogLevel {\n trace = 'trace',\n debug = 'debug',\n info = 'info',\n warn = 'warn',\n error = 'error',\n fatal = 'fatal',\n}\n\ntype LogLevels = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst getLevel = (logLevel?: LogLevel): LogLevel => {\n if (logLevel) return logLevel;\n if (process.env.LOG_LEVEL) return process.env.LOG_LEVEL as LogLevel;\n if (process.env.NODE_ENV && ['production', 'staging', 'test'].includes(process.env.NODE_ENV)) return LogLevel.info;\n if (process.env.NODE_ENV === 'development') return LogLevel.debug;\n return LogLevel.debug;\n};\n\nconst createLoggerInstance = (level: LogLevel, options: Omit<LoggerOptions, 'transport'>) => {\n let loggerInstance;\n if (process.env.NODE_ENV === 'production') {\n loggerInstance = Pino(gcpLogOptions({\n level: process.env.PINO_LOG_LEVEL || 'info',\n ...options,\n } as object));\n } else {\n loggerInstance = Pino({\n level: process.env.PINO_LOG_LEVEL || 'info',\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n ...options,\n });\n }\n loggerInstance.level = level;\n return loggerInstance;\n};\n\ntype MiddlewareFunction = () => Record<string, unknown>;\n\nexport class LoggerInstanceManager {\n #contextMiddlewares: MiddlewareFunction[] = [];\n\n #logger: Pino.Logger;\n\n constructor(logLevel?: LogLevel) {\n this.#logger = createLoggerInstance(getLevel(logLevel), {\n mixin: () => this.addMetadata(),\n serializers: {\n ...stdSerializers,\n e: stdSerializers.errWithCause,\n err: stdSerializers.errWithCause,\n error: stdSerializers.errWithCause,\n errors(val) {\n if (Array.isArray(val)) {\n return val.map(stdSerializers.errWithCause);\n }\n return stdSerializers.errWithCause(val);\n },\n },\n });\n }\n\n // To support winston like logging in pino\n winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown) {\n if (meta) {\n this.#logger[logLevel](meta, message);\n } else {\n this.#logger[logLevel](message);\n }\n }\n\n addMetadata(): Record<string, unknown> {\n const newMetadata = {};\n this.#contextMiddlewares.forEach((middleware) => {\n const metadata = middleware();\n Object.assign(newMetadata, metadata);\n });\n return newMetadata;\n }\n\n addContextMiddleware(middleware: MiddlewareFunction) {\n this.#contextMiddlewares.push(middleware);\n }\n\n trace(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.trace, message, meta);\n }\n\n debug(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.debug, message, meta);\n }\n\n info(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.info, message, meta);\n }\n\n warn(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.warn, message, meta);\n }\n\n error(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.error, message, meta);\n }\n\n fatal(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.fatal, message, meta);\n }\n\n child(metadata: Record<string, unknown>) {\n return this.#logger.child(metadata);\n }\n\n get level() {\n return this.#logger.level;\n }\n}\n\nexport default (loglevel?: LogLevels): LoggerInstanceManager => new LoggerInstanceManager(loglevel as LogLevel);\n"]}
|
package/package.json
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autofleet/logger",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist/index.d.cts",
|
|
17
|
+
"default": "./dist/index.cjs"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
7
21
|
"files": [
|
|
8
22
|
"dist",
|
|
9
23
|
"readme.md"
|
|
@@ -13,9 +27,10 @@
|
|
|
13
27
|
"test": "jest --runInBand",
|
|
14
28
|
"test-auto": "jest --watch --runInBand",
|
|
15
29
|
"linter": "eslint ./src",
|
|
16
|
-
"build": "
|
|
30
|
+
"build": "tsup",
|
|
17
31
|
"prepublishOnly": "npm run build",
|
|
18
|
-
"example": "ts-node example.ts"
|
|
32
|
+
"example": "ts-node example.ts",
|
|
33
|
+
"type-check": "tsc --noEmit"
|
|
19
34
|
},
|
|
20
35
|
"jest": {
|
|
21
36
|
"setupTestFrameworkScriptFile": "jest-extended",
|
|
@@ -33,13 +48,9 @@
|
|
|
33
48
|
},
|
|
34
49
|
"homepage": "https://github.com/Autofleet/logger",
|
|
35
50
|
"dependencies": {
|
|
36
|
-
"@google-cloud/logging-winston": "^6.0.0",
|
|
37
|
-
"dotenv": "^5.0.1",
|
|
38
|
-
"object-sizeof": "^1.6.1",
|
|
39
51
|
"pino": "9.2.0",
|
|
40
52
|
"pino-cloud-logging": "^1.0.6",
|
|
41
|
-
"pino-pretty": "^11.2.1"
|
|
42
|
-
"winston": "^3.11.0"
|
|
53
|
+
"pino-pretty": "^11.2.1"
|
|
43
54
|
},
|
|
44
55
|
"devDependencies": {
|
|
45
56
|
"@types/jest": "^29.5.12",
|
|
@@ -54,6 +65,7 @@
|
|
|
54
65
|
"nock": "^10.0.2",
|
|
55
66
|
"ts-jest": "^29.1.5",
|
|
56
67
|
"ts-node": "^10.9.2",
|
|
68
|
+
"tsup": "^8.3.6",
|
|
57
69
|
"typescript": "^5.3.2"
|
|
58
70
|
}
|
|
59
71
|
}
|