@levrbet/shared 0.2.17 → 0.2.18

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.
@@ -2,11 +2,14 @@ import winston from "winston";
2
2
  export interface LoggerOptions {
3
3
  service?: string;
4
4
  level?: string;
5
- extra?: Record<string, unknown>;
5
+ additionalMeta?: Record<string, unknown>;
6
6
  }
7
- export declare const createLogger: ({ service, level, extra }?: LoggerOptions) => winston.Logger;
7
+ export declare const createLogger: (options?: LoggerOptions) => winston.Logger;
8
8
  declare const logger: winston.Logger;
9
- export default logger;
10
- export declare const createMorganStream: (log?: winston.Logger) => {
11
- write: (msg: string) => winston.Logger;
9
+ export declare const createStream: (loggerInstance?: winston.Logger) => {
10
+ write: (message: string) => void;
11
+ };
12
+ export declare const stream: {
13
+ write: (message: string) => void;
12
14
  };
15
+ export default logger;
@@ -3,58 +3,143 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createMorganStream = exports.createLogger = void 0;
6
+ exports.stream = exports.createStream = exports.createLogger = void 0;
7
7
  const winston_1 = __importDefault(require("winston"));
8
8
  const dotenv_1 = require("./dotenv");
9
- const { combine, timestamp, errors, json, printf, colorize, splat } = winston_1.default.format;
9
+ const types_1 = require("../../core/types");
10
+ const util_1 = __importDefault(require("util"));
11
+ const SPLAT = Symbol.for("splat");
12
+ /**
13
+ * @dev exporting a configured Winston logger instance
14
+ *
15
+ * In another service using the library:
16
+ import { createLogger, createStream } from "@levrbet/shared"
17
+
18
+ // Create a custom logger
19
+ const logger = createLogger({
20
+ service: "levr-oracle-core",
21
+ additionalMeta: {
22
+ version: "1.0.0",
23
+ region: "ap-south-1"
24
+ }
25
+ })
26
+
27
+ // Use with Morgan for HTTP request logging
28
+ import morgan from "express"
29
+ const morganStream = createStream(logger)
30
+ app.use(morgan("combined", { stream: morganStream }))
31
+
32
+ // Or just use the default
33
+ import logger from "@levrbet/shared"
34
+ logger.info("Using default logger")
35
+ *
36
+ */
37
+ const { combine, timestamp, errors, json, splat, colorize, printf } = winston_1.default.format;
38
+ // Determine log level based on environment
10
39
  const LOG_LEVEL = {
11
40
  local: "debug",
12
41
  dev: "debug",
13
42
  staging: "info",
14
43
  prod: "error",
15
- }[dotenv_1.LEVR_ENV] ?? "info";
16
- /// @dev more detailed console format for local development
17
- const devFormat = printf(({ level, message, timestamp, service, ...meta }) => {
18
- // color the level
19
- const colouredLevel = winston_1.default.format.colorize().colorize(level, level.toUpperCase());
20
- // base line
21
- let line = `${timestamp} ${colouredLevel}`;
22
- if (service)
23
- line += ` [${service}]`;
24
- line += ` ${message}`;
25
- // print any extra meta on a new line (pretty JSON)
26
- const keys = Object.keys(meta);
27
- if (keys.length) {
28
- line += `\n${JSON.stringify(meta, null, 2)}`;
44
+ }[dotenv_1.LEVR_ENV];
45
+ const KEY_COLOR = "\x1b[33m"; // yellow
46
+ const RESET_COLOR = "\x1b[0m";
47
+ const readableFormat = printf((info) => {
48
+ const { level, message, timestamp, service, stack, ...rest } = info;
49
+ const ts = typeof timestamp === "string" ? timestamp : new Date().toISOString();
50
+ const lvl = typeof level === "string" ? level : "info";
51
+ const svc = typeof service === "string" ? service : undefined;
52
+ let msgStr = typeof message === "string" ? message : util_1.default.inspect(message, { depth: 4 });
53
+ const splatArgs = Array.isArray(info[SPLAT]) ? info[SPLAT] : [];
54
+ const metaToPrint = {};
55
+ for (const arg of splatArgs) {
56
+ if (typeof arg === "string" || typeof arg === "number" || typeof arg === "boolean") {
57
+ msgStr += " " + String(arg);
58
+ }
59
+ else if (Array.isArray(arg)) {
60
+ if (!metaToPrint["args"]) {
61
+ metaToPrint["args"] = [];
62
+ }
63
+ ;
64
+ metaToPrint["args"].push(arg);
65
+ }
66
+ else if (arg && typeof arg === "object") {
67
+ if (!metaToPrint["args"]) {
68
+ metaToPrint["args"] = [];
69
+ }
70
+ ;
71
+ metaToPrint["args"].push(arg);
72
+ }
73
+ else {
74
+ if (!metaToPrint["args"]) {
75
+ metaToPrint["args"] = [];
76
+ }
77
+ ;
78
+ metaToPrint["args"].push(arg);
79
+ }
29
80
  }
30
- return line;
81
+ for (const [key, value] of Object.entries(rest)) {
82
+ if (["service", "environment", "level", "message", "timestamp"].includes(key))
83
+ continue;
84
+ if (/^\d+$/.test(key))
85
+ continue;
86
+ metaToPrint[key] = value;
87
+ }
88
+ let output = `${ts} ${lvl}`;
89
+ if (svc) {
90
+ output += ` [${svc}]`;
91
+ }
92
+ output += `: ${msgStr}`;
93
+ if (stack && typeof stack === "string") {
94
+ output += `\n ${stack.split("\n").join("\n ")}`;
95
+ }
96
+ if (Object.keys(metaToPrint).length > 0) {
97
+ const inspectOpts = { depth: 6, colors: false, compact: false, maxArrayLength: 100 };
98
+ // Later:
99
+ const pretty = util_1.default.inspect(metaToPrint, inspectOpts);
100
+ // Expand regex to catch more key forms:
101
+ const coloured = pretty.replace(/(^\s*)(["']?)([^"'\s]+)\2(?=\s*[:])/gm, (_match, indent, quote, key) => `${indent}${KEY_COLOR}${quote}${key}${quote}${RESET_COLOR}`);
102
+ output += `\n ${coloured.split("\n").join("\n ")}`;
103
+ }
104
+ return output;
31
105
  });
32
- /// @dev pure json format for otel collection
33
- const prodFormat = combine(timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), // ISO-ish
34
- errors({ stack: true }), // stack traces as `error.stack`
35
- splat(), // %s, %d, %j support
36
- json() // final JSON string
37
- );
38
- const createLogger = ({ service = "unknown-levr-service", level = LOG_LEVEL, extra = {} } = {}) => {
39
- return winston_1.default.createLogger({
106
+ /// @dev Production format (structured JSON for OTEL)
107
+ const productionFormat = combine(timestamp({ format: "YYYY-MM-DD HH:mm:ss.SSS" }), errors({ stack: true }), splat(), json());
108
+ // Local development format (human-readable with colors)
109
+ const developmentFormat = combine(timestamp({ format: "YYYY-MM-DD HH:mm:ss.SSS" }), errors({ stack: true }), splat(), colorize({ all: false, level: true, message: false }), readableFormat);
110
+ const createLogger = (options = {}) => {
111
+ const { service = "@levrbet/shared", level = LOG_LEVEL, additionalMeta = {} } = options;
112
+ const winstonLogger = winston_1.default.createLogger({
40
113
  level,
41
- format: dotenv_1.LEVR_ENV === "local" ? combine(colorize(), devFormat) : prodFormat,
42
- defaultMeta: { service, environment: dotenv_1.LEVR_ENV, ...extra },
114
+ levels: winston_1.default.config.npm.levels,
115
+ format: dotenv_1.LEVR_ENV === types_1.LevrEnv.PROD ? productionFormat : developmentFormat,
116
+ defaultMeta: {
117
+ service,
118
+ environment: dotenv_1.LEVR_ENV,
119
+ ...additionalMeta,
120
+ },
43
121
  transports: [
44
122
  new winston_1.default.transports.Console({
45
- stderrLevels: ["error"], // error → stderr, everything else → stdout
123
+ stderrLevels: ["error"],
46
124
  }),
47
125
  ],
48
126
  exitOnError: false,
49
127
  });
128
+ return winstonLogger;
50
129
  };
51
130
  exports.createLogger = createLogger;
52
- /// @dev default logger for general use
53
- const logger = (0, exports.createLogger)({ service: "@levr/shared" });
54
- exports.default = logger;
55
- /// @dev Morgan stream adapter
56
- const createMorganStream = (log = logger) => ({
57
- write: (msg) => log.http(msg.trim()),
131
+ // Default logger instance
132
+ const logger = (0, exports.createLogger)();
133
+ // Create stream for Morgan (HTTP logging)
134
+ const createStream = (loggerInstance = logger) => ({
135
+ write: (message) => {
136
+ const msg = typeof message === "string" ? message.trim() : String(message);
137
+ if (msg.length > 0) {
138
+ loggerInstance.info(msg);
139
+ }
140
+ },
58
141
  });
59
- exports.createMorganStream = createMorganStream;
142
+ exports.createStream = createStream;
143
+ exports.stream = (0, exports.createStream)();
144
+ exports.default = logger;
60
145
  //# sourceMappingURL=winston.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"winston.js","sourceRoot":"","sources":["../../../src/server/config/winston.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAC7B,qCAAmC;AAEnC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,iBAAO,CAAC,MAAM,CAAA;AAEpF,MAAM,SAAS,GACX;IACI,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,OAAO;IACZ,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,OAAO;CAChB,CAAC,iBAAQ,CAAC,IAAI,MAAM,CAAA;AAEzB,2DAA2D;AAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACzE,kBAAkB;IAClB,MAAM,aAAa,GAAG,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;IAEpF,YAAY;IACZ,IAAI,IAAI,GAAG,GAAG,SAAS,IAAI,aAAa,EAAE,CAAA;IAC1C,IAAI,OAAO;QAAE,IAAI,IAAI,KAAK,OAAO,GAAG,CAAA;IACpC,IAAI,IAAI,IAAI,OAAO,EAAE,CAAA;IAErB,mDAAmD;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAA;IAChD,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC,CAAC,CAAA;AAEF,6CAA6C;AAC7C,MAAM,UAAU,GAAG,OAAO,CACtB,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EAAE,UAAU;AACxD,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,gCAAgC;AACzD,KAAK,EAAE,EAAE,qBAAqB;AAC9B,IAAI,EAAE,CAAC,oBAAoB;CAC9B,CAAA;AAQM,MAAM,YAAY,GAAG,CAAC,EAAE,OAAO,GAAG,sBAAsB,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,GAAG,EAAE,KAAoB,EAAE,EAAE,EAAE;IACpH,OAAO,iBAAO,CAAC,YAAY,CAAC;QACxB,KAAK;QACL,MAAM,EAAE,iBAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU;QAC1E,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAQ,EAAE,GAAG,KAAK,EAAE;QACzD,UAAU,EAAE;YACR,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC3B,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,2CAA2C;aACvE,CAAC;SACL;QACD,WAAW,EAAE,KAAK;KACrB,CAAC,CAAA;AACN,CAAC,CAAA;AAZY,QAAA,YAAY,gBAYxB;AAED,uCAAuC;AACvC,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;AACxD,kBAAe,MAAM,CAAA;AAErB,8BAA8B;AACvB,MAAM,kBAAkB,GAAG,CAAC,MAAsB,MAAM,EAAE,EAAE,CAAC,CAAC;IACjE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;CAC/C,CAAC,CAAA;AAFW,QAAA,kBAAkB,sBAE7B"}
1
+ {"version":3,"file":"winston.js","sourceRoot":"","sources":["../../../src/server/config/winston.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levrbet/shared",
3
- "version": "0.2.17",
3
+ "version": "0.2.18",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {