@orion-js/logger 4.0.0-next.2 → 4.0.0-next.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Orionjs Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/index.cjs CHANGED
@@ -4,7 +4,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
7
  var __export = (target, all) => {
9
8
  for (var name in all)
10
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -100,36 +99,35 @@ function getMetadataText(metadata2) {
100
99
  }
101
100
  return `${import_node_util.default.inspect(value)} ${import_node_util.default.inspect(rest)}`;
102
101
  }
103
- __name(getMetadataText, "getMetadataText");
104
- var textConsoleFormat = combine(colorize(), metadata({
105
- fillExcept: [
106
- "fileName",
107
- "level",
108
- "message",
109
- "stack"
110
- ]
111
- }), opentelemetryContext(), metaError(), timestamp(), printf((info) => {
112
- const date = new Date(info.timestamp);
113
- const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
114
- const fileNameLabel = info.fileName ? `[${info.fileName}]` : "";
115
- const stack = info.stack ? `
102
+ var textConsoleFormat = combine(
103
+ colorize(),
104
+ metadata({ fillExcept: ["fileName", "level", "message", "stack"] }),
105
+ opentelemetryContext(),
106
+ metaError(),
107
+ timestamp(),
108
+ printf((info) => {
109
+ const date = new Date(info.timestamp);
110
+ const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
111
+ const fileNameLabel = info.fileName ? `[${info.fileName}]` : "";
112
+ const stack = info.stack ? `
116
113
  ${info.stack}` : "";
117
- const value = getMetadataText(info.metadata);
118
- const traceId = info.trace_id ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}` : "";
119
- const context = `${info.context || ""} ${traceId}`.trim();
120
- return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`;
121
- }));
114
+ const value = getMetadataText(info.metadata);
115
+ const traceId = info.trace_id ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}` : "";
116
+ const context = `${info.context || ""} ${traceId}`.trim();
117
+ return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`;
118
+ })
119
+ );
122
120
  var textConsoleTransport = new import_winston.transports.Console({
123
121
  handleExceptions: true,
124
122
  format: textConsoleFormat
125
123
  });
126
- var jsonConsoleFormat = combine(metadata({
127
- fillExcept: [
128
- "fileName",
129
- "level",
130
- "message"
131
- ]
132
- }), opentelemetryContext(), metaError(), timestamp(), json());
124
+ var jsonConsoleFormat = combine(
125
+ metadata({ fillExcept: ["fileName", "level", "message"] }),
126
+ opentelemetryContext(),
127
+ metaError(),
128
+ timestamp(),
129
+ json()
130
+ );
133
131
  var jsonConsoleTransport = new import_winston.transports.Console({
134
132
  handleExceptions: true,
135
133
  format: jsonConsoleFormat
@@ -139,7 +137,7 @@ var jsonConsoleTransport = new import_winston.transports.Console({
139
137
  var import_winston2 = require("winston");
140
138
 
141
139
  // src/helpers/getFileName.ts
142
- var getFileName = /* @__PURE__ */ __name(() => {
140
+ var getFileName = () => {
143
141
  try {
144
142
  const stack = new Error().stack;
145
143
  const lines = stack.split("\n");
@@ -148,8 +146,8 @@ var getFileName = /* @__PURE__ */ __name(() => {
148
146
  } catch (error) {
149
147
  return;
150
148
  }
151
- }, "getFileName");
152
- var improveFileName = /* @__PURE__ */ __name((path) => {
149
+ };
150
+ var improveFileName = (path) => {
153
151
  if (path.includes("orionjs/packages")) {
154
152
  return path.replace(/^.+\/orionjs\/packages\//, "@orion-js/");
155
153
  }
@@ -167,7 +165,7 @@ var improveFileName = /* @__PURE__ */ __name((path) => {
167
165
  return `${parts[0]}`;
168
166
  }
169
167
  return path;
170
- }, "improveFileName");
168
+ };
171
169
 
172
170
  // src/logger.ts
173
171
  var transports2 = [
@@ -176,74 +174,52 @@ var transports2 = [
176
174
  var winstonLogger = (0, import_winston2.createLogger)({
177
175
  levels: import_winston2.config.npm.levels,
178
176
  handleExceptions: true,
179
- format: import_winston2.format.errors({
180
- stack: true
181
- }),
177
+ format: import_winston2.format.errors({ stack: true }),
182
178
  transports: transports2
183
179
  });
184
- var configureLogger = /* @__PURE__ */ __name((options) => {
180
+ var configureLogger = (options) => {
185
181
  return winstonLogger.configure(options);
186
- }, "configureLogger");
187
- var setLogLevel = /* @__PURE__ */ __name((level) => {
182
+ };
183
+ var setLogLevel = (level) => {
188
184
  return winstonLogger.level = level;
189
- }, "setLogLevel");
190
- var addTransport = /* @__PURE__ */ __name((transport) => {
185
+ };
186
+ var addTransport = (transport) => {
191
187
  return winstonLogger.add(transport);
192
- }, "addTransport");
193
- var getLogger = /* @__PURE__ */ __name((context) => {
194
- return winstonLogger.child({
195
- context
196
- });
197
- }, "getLogger");
198
- var createLogger = /* @__PURE__ */ __name((logger2) => {
188
+ };
189
+ var getLogger = (context) => {
190
+ return winstonLogger.child({ context });
191
+ };
192
+ var createLogger = (logger2) => {
199
193
  return {
200
- debug: /* @__PURE__ */ __name((message, value) => {
194
+ debug: (message, value) => {
201
195
  const fileName = getFileName();
202
- return logger2.debug({
203
- message,
204
- fileName,
205
- value
206
- });
207
- }, "debug"),
208
- info: /* @__PURE__ */ __name((message, value) => {
196
+ return logger2.debug({ message, fileName, value });
197
+ },
198
+ info: (message, value) => {
209
199
  const fileName = getFileName();
210
- return logger2.info({
211
- message,
212
- fileName,
213
- value
214
- });
215
- }, "info"),
216
- warn: /* @__PURE__ */ __name((message, value) => {
200
+ return logger2.info({ message, fileName, value });
201
+ },
202
+ warn: (message, value) => {
217
203
  const fileName = getFileName();
218
- return logger2.warn({
219
- message,
220
- fileName,
221
- value
222
- });
223
- }, "warn"),
224
- error: /* @__PURE__ */ __name((message, value) => {
204
+ return logger2.warn({ message, fileName, value });
205
+ },
206
+ error: (message, value) => {
225
207
  const fileName = getFileName();
226
- return logger2.error({
227
- message,
228
- fileName,
229
- value
230
- });
231
- }, "error"),
232
- addContext: /* @__PURE__ */ __name((module2) => {
208
+ return logger2.error({ message, fileName, value });
209
+ },
210
+ addContext: (module2) => {
233
211
  if (module2.id) {
234
212
  const split = String(module2.id).split(".orion/build/");
235
213
  const fileName = split.length > 1 ? split[1] : split[0];
236
- return createLogger(logger2.child({
237
- fileName
238
- }));
214
+ return createLogger(logger2.child({ fileName }));
239
215
  }
240
216
  return createLogger(logger2.child({}));
241
- }, "addContext"),
242
- addMetadata: /* @__PURE__ */ __name((metadata2) => {
217
+ },
218
+ addMetadata: (metadata2) => {
243
219
  return createLogger(logger2.child(metadata2));
244
- }, "addMetadata")
220
+ }
245
221
  };
246
- }, "createLogger");
222
+ };
247
223
  var logger = createLogger(winstonLogger);
248
224
  // Annotate the CommonJS export names for ESM import in node:
249
225
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/formats.ts","../src/logger.ts","../src/helpers/getFileName.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'lodash'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = `${info.context || ''} ${traceId}`.trim()\n\n return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n (process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID) ? textConsoleTransport : jsonConsoleTransport\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n return (winstonLogger.level = level)\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n }\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch (error) {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n\n return path\n}\n"],"mappings":"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","names":["winston","import_winston","metadata","timestamp","json","colorize","combine","printf","format","opentelemetryContext","info","activeSpan","opentelemetry","trace","getActiveSpan","spanContex","spanContext","name","context","fields","trace_id","traceId","span_id","spanId","trace_flags","traceFlags","toString","Object","assign","metaError","value","error","Error","stack","errorMessage","message","sentryFormat","path","label","extra","tags","request_id","getMetadataText","rest","isEmpty","util","inspect","textConsoleFormat","fillExcept","date","Date","timeLabel","getHours","getMinutes","getSeconds","fileNameLabel","fileName","String","substring","trim","level","textConsoleTransport","transports","Console","handleExceptions","jsonConsoleFormat","jsonConsoleTransport","import_winston","getFileName","stack","Error","lines","split","filePath","improveFileName","error","path","includes","replace","after","parts","transports","process","env","NODE_ENV","ORION_DEV","JEST_WORKER_ID","textConsoleTransport","jsonConsoleTransport","winstonLogger","winstonCreateLogger","levels","config","npm","handleExceptions","format","errors","stack","configureLogger","options","configure","setLogLevel","level","addTransport","transport","add","getLogger","context","child","createLogger","logger","debug","message","value","fileName","getFileName","info","warn","error","addContext","module","id","split","String","length","addMetadata","metadata"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/formats.ts","../src/logger.ts","../src/helpers/getFileName.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'lodash'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat: any = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat: any = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = `${info.context || ''} ${traceId}`.trim()\n\n return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat: any = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID\n ? textConsoleTransport\n : jsonConsoleTransport,\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports,\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n return (winstonLogger.level = level)\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n },\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch (error) {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n\n return path\n}\n"],"mappings":"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","names":["winston","import_winston","opentelemetry","metadata","util","import_winston","transports","winstonCreateLogger","logger","module","metadata"]}
package/dist/index.d.cts CHANGED
@@ -1,11 +1,10 @@
1
1
  import winston, { transports } from 'winston';
2
2
  export { default as winston } from 'winston';
3
- import * as logform from 'logform';
4
3
 
5
- declare const sentryFormat: logform.FormatWrap;
6
- declare const textConsoleFormat: logform.Format;
4
+ declare const sentryFormat: any;
5
+ declare const textConsoleFormat: any;
7
6
  declare const textConsoleTransport: transports.ConsoleTransportInstance;
8
- declare const jsonConsoleFormat: logform.Format;
7
+ declare const jsonConsoleFormat: any;
9
8
  declare const jsonConsoleTransport: transports.ConsoleTransportInstance;
10
9
 
11
10
  type LogFunction = (message: string, metadata?: any) => void;
package/dist/index.d.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  import winston, { transports } from 'winston';
2
2
  export { default as winston } from 'winston';
3
- import * as logform from 'logform';
4
3
 
5
- declare const sentryFormat: logform.FormatWrap;
6
- declare const textConsoleFormat: logform.Format;
4
+ declare const sentryFormat: any;
5
+ declare const textConsoleFormat: any;
7
6
  declare const textConsoleTransport: transports.ConsoleTransportInstance;
8
- declare const jsonConsoleFormat: logform.Format;
7
+ declare const jsonConsoleFormat: any;
9
8
  declare const jsonConsoleTransport: transports.ConsoleTransportInstance;
10
9
 
11
10
  type LogFunction = (message: string, metadata?: any) => void;
package/dist/index.js CHANGED
@@ -1,8 +1,5 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/index.ts
5
- import winston from "winston";
2
+ import winston2 from "winston";
6
3
 
7
4
  // src/formats.ts
8
5
  import { format, transports } from "winston";
@@ -58,36 +55,35 @@ function getMetadataText(metadata2) {
58
55
  }
59
56
  return `${util.inspect(value)} ${util.inspect(rest)}`;
60
57
  }
61
- __name(getMetadataText, "getMetadataText");
62
- var textConsoleFormat = combine(colorize(), metadata({
63
- fillExcept: [
64
- "fileName",
65
- "level",
66
- "message",
67
- "stack"
68
- ]
69
- }), opentelemetryContext(), metaError(), timestamp(), printf((info) => {
70
- const date = new Date(info.timestamp);
71
- const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
72
- const fileNameLabel = info.fileName ? `[${info.fileName}]` : "";
73
- const stack = info.stack ? `
58
+ var textConsoleFormat = combine(
59
+ colorize(),
60
+ metadata({ fillExcept: ["fileName", "level", "message", "stack"] }),
61
+ opentelemetryContext(),
62
+ metaError(),
63
+ timestamp(),
64
+ printf((info) => {
65
+ const date = new Date(info.timestamp);
66
+ const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
67
+ const fileNameLabel = info.fileName ? `[${info.fileName}]` : "";
68
+ const stack = info.stack ? `
74
69
  ${info.stack}` : "";
75
- const value = getMetadataText(info.metadata);
76
- const traceId = info.trace_id ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}` : "";
77
- const context = `${info.context || ""} ${traceId}`.trim();
78
- return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`;
79
- }));
70
+ const value = getMetadataText(info.metadata);
71
+ const traceId = info.trace_id ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}` : "";
72
+ const context = `${info.context || ""} ${traceId}`.trim();
73
+ return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`;
74
+ })
75
+ );
80
76
  var textConsoleTransport = new transports.Console({
81
77
  handleExceptions: true,
82
78
  format: textConsoleFormat
83
79
  });
84
- var jsonConsoleFormat = combine(metadata({
85
- fillExcept: [
86
- "fileName",
87
- "level",
88
- "message"
89
- ]
90
- }), opentelemetryContext(), metaError(), timestamp(), json());
80
+ var jsonConsoleFormat = combine(
81
+ metadata({ fillExcept: ["fileName", "level", "message"] }),
82
+ opentelemetryContext(),
83
+ metaError(),
84
+ timestamp(),
85
+ json()
86
+ );
91
87
  var jsonConsoleTransport = new transports.Console({
92
88
  handleExceptions: true,
93
89
  format: jsonConsoleFormat
@@ -97,7 +93,7 @@ var jsonConsoleTransport = new transports.Console({
97
93
  import { createLogger as winstonCreateLogger, config, format as format2 } from "winston";
98
94
 
99
95
  // src/helpers/getFileName.ts
100
- var getFileName = /* @__PURE__ */ __name(() => {
96
+ var getFileName = () => {
101
97
  try {
102
98
  const stack = new Error().stack;
103
99
  const lines = stack.split("\n");
@@ -106,8 +102,8 @@ var getFileName = /* @__PURE__ */ __name(() => {
106
102
  } catch (error) {
107
103
  return;
108
104
  }
109
- }, "getFileName");
110
- var improveFileName = /* @__PURE__ */ __name((path) => {
105
+ };
106
+ var improveFileName = (path) => {
111
107
  if (path.includes("orionjs/packages")) {
112
108
  return path.replace(/^.+\/orionjs\/packages\//, "@orion-js/");
113
109
  }
@@ -125,7 +121,7 @@ var improveFileName = /* @__PURE__ */ __name((path) => {
125
121
  return `${parts[0]}`;
126
122
  }
127
123
  return path;
128
- }, "improveFileName");
124
+ };
129
125
 
130
126
  // src/logger.ts
131
127
  var transports2 = [
@@ -134,74 +130,52 @@ var transports2 = [
134
130
  var winstonLogger = winstonCreateLogger({
135
131
  levels: config.npm.levels,
136
132
  handleExceptions: true,
137
- format: format2.errors({
138
- stack: true
139
- }),
133
+ format: format2.errors({ stack: true }),
140
134
  transports: transports2
141
135
  });
142
- var configureLogger = /* @__PURE__ */ __name((options) => {
136
+ var configureLogger = (options) => {
143
137
  return winstonLogger.configure(options);
144
- }, "configureLogger");
145
- var setLogLevel = /* @__PURE__ */ __name((level) => {
138
+ };
139
+ var setLogLevel = (level) => {
146
140
  return winstonLogger.level = level;
147
- }, "setLogLevel");
148
- var addTransport = /* @__PURE__ */ __name((transport) => {
141
+ };
142
+ var addTransport = (transport) => {
149
143
  return winstonLogger.add(transport);
150
- }, "addTransport");
151
- var getLogger = /* @__PURE__ */ __name((context) => {
152
- return winstonLogger.child({
153
- context
154
- });
155
- }, "getLogger");
156
- var createLogger = /* @__PURE__ */ __name((logger2) => {
144
+ };
145
+ var getLogger = (context) => {
146
+ return winstonLogger.child({ context });
147
+ };
148
+ var createLogger = (logger2) => {
157
149
  return {
158
- debug: /* @__PURE__ */ __name((message, value) => {
150
+ debug: (message, value) => {
159
151
  const fileName = getFileName();
160
- return logger2.debug({
161
- message,
162
- fileName,
163
- value
164
- });
165
- }, "debug"),
166
- info: /* @__PURE__ */ __name((message, value) => {
152
+ return logger2.debug({ message, fileName, value });
153
+ },
154
+ info: (message, value) => {
167
155
  const fileName = getFileName();
168
- return logger2.info({
169
- message,
170
- fileName,
171
- value
172
- });
173
- }, "info"),
174
- warn: /* @__PURE__ */ __name((message, value) => {
156
+ return logger2.info({ message, fileName, value });
157
+ },
158
+ warn: (message, value) => {
175
159
  const fileName = getFileName();
176
- return logger2.warn({
177
- message,
178
- fileName,
179
- value
180
- });
181
- }, "warn"),
182
- error: /* @__PURE__ */ __name((message, value) => {
160
+ return logger2.warn({ message, fileName, value });
161
+ },
162
+ error: (message, value) => {
183
163
  const fileName = getFileName();
184
- return logger2.error({
185
- message,
186
- fileName,
187
- value
188
- });
189
- }, "error"),
190
- addContext: /* @__PURE__ */ __name((module) => {
164
+ return logger2.error({ message, fileName, value });
165
+ },
166
+ addContext: (module) => {
191
167
  if (module.id) {
192
168
  const split = String(module.id).split(".orion/build/");
193
169
  const fileName = split.length > 1 ? split[1] : split[0];
194
- return createLogger(logger2.child({
195
- fileName
196
- }));
170
+ return createLogger(logger2.child({ fileName }));
197
171
  }
198
172
  return createLogger(logger2.child({}));
199
- }, "addContext"),
200
- addMetadata: /* @__PURE__ */ __name((metadata2) => {
173
+ },
174
+ addMetadata: (metadata2) => {
201
175
  return createLogger(logger2.child(metadata2));
202
- }, "addMetadata")
176
+ }
203
177
  };
204
- }, "createLogger");
178
+ };
205
179
  var logger = createLogger(winstonLogger);
206
180
  export {
207
181
  addTransport,
@@ -214,7 +188,7 @@ export {
214
188
  setLogLevel,
215
189
  textConsoleFormat,
216
190
  textConsoleTransport,
217
- winston,
191
+ winston2 as winston,
218
192
  winstonLogger
219
193
  };
220
194
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/formats.ts","../src/logger.ts","../src/helpers/getFileName.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'lodash'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = `${info.context || ''} ${traceId}`.trim()\n\n return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n (process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID) ? textConsoleTransport : jsonConsoleTransport\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n return (winstonLogger.level = level)\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n }\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch (error) {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n\n return path\n}\n"],"mappings":"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","names":["winston","format","transports","util","isEmpty","opentelemetry","metadata","timestamp","json","colorize","combine","printf","format","opentelemetryContext","info","activeSpan","opentelemetry","trace","getActiveSpan","spanContex","spanContext","name","context","fields","trace_id","traceId","span_id","spanId","trace_flags","traceFlags","toString","Object","assign","metaError","value","error","Error","stack","errorMessage","message","sentryFormat","path","label","extra","tags","request_id","getMetadataText","rest","isEmpty","util","inspect","textConsoleFormat","fillExcept","date","Date","timeLabel","getHours","getMinutes","getSeconds","fileNameLabel","fileName","String","substring","trim","level","textConsoleTransport","transports","Console","handleExceptions","jsonConsoleFormat","jsonConsoleTransport","createLogger","winstonCreateLogger","config","format","getFileName","stack","Error","lines","split","filePath","improveFileName","error","path","includes","replace","after","parts","transports","process","env","NODE_ENV","ORION_DEV","JEST_WORKER_ID","textConsoleTransport","jsonConsoleTransport","winstonLogger","winstonCreateLogger","levels","config","npm","handleExceptions","format","errors","stack","configureLogger","options","configure","setLogLevel","level","addTransport","transport","add","getLogger","context","child","createLogger","logger","debug","message","value","fileName","getFileName","info","warn","error","addContext","module","id","split","String","length","addMetadata","metadata"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/formats.ts","../src/logger.ts","../src/helpers/getFileName.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'lodash'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat: any = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat: any = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = `${info.context || ''} ${traceId}`.trim()\n\n return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat: any = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID\n ? textConsoleTransport\n : jsonConsoleTransport,\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports,\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n return (winstonLogger.level = level)\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n },\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch (error) {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n\n return path\n}\n"],"mappings":"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","names":["winston","metadata","format","transports","format","logger","metadata"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/logger",
3
- "version": "4.0.0-next.2",
3
+ "version": "4.0.0-next.4",
4
4
  "main": "./dist/index.cjs",
5
5
  "author": "nicolaslopezj",
6
6
  "license": "MIT",