@kkristen/nest-utils 1.0.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.
@@ -0,0 +1,14 @@
1
+ import { LoggerService } from '@nestjs/common';
2
+ import { LoggerOptions, ILoggerService, IArgumentsLog } from './types';
3
+ export declare class ExternalUtilsLogger implements LoggerService, ILoggerService {
4
+ private options;
5
+ private logger;
6
+ constructor(options?: LoggerOptions);
7
+ private getCurrentTime;
8
+ log(message: string, args?: IArgumentsLog): void;
9
+ error(message: string, args?: IArgumentsLog): void;
10
+ warn(message: string, args?: IArgumentsLog): void;
11
+ debug(message: string, args?: IArgumentsLog): void;
12
+ verbose(message: string, args?: IArgumentsLog): void;
13
+ fatal(message: string, args?: IArgumentsLog): void;
14
+ }
package/dist/index.js ADDED
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ExternalUtilsLogger = void 0;
7
+ const winston_1 = require("winston");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const dayjs_1 = __importDefault(require("dayjs"));
10
+ class ExternalUtilsLogger {
11
+ constructor(options = {}) {
12
+ var _a, _b;
13
+ this.options = options;
14
+ const level = (_a = options.level) !== null && _a !== void 0 ? _a : 'debug';
15
+ const logFilePath = (_b = options.logFilePath) !== null && _b !== void 0 ? _b : 'logs/app.log';
16
+ const prefixGlobal = options.prefixGlobal;
17
+ this.logger = (0, winston_1.createLogger)({
18
+ level,
19
+ transports: [
20
+ new winston_1.transports.Console({
21
+ format: winston_1.format.combine(winston_1.format.colorize(), winston_1.format.printf(({ prefix, message, level, time, isSystemLog }) => {
22
+ const strApp = chalk_1.default.green('[Nest]');
23
+ const strPrefixGlobal = prefixGlobal ? chalk_1.default.green(`[${prefixGlobal}]`) : '';
24
+ const strTime = `[${time}]`;
25
+ const strLevel = `[${level}]`;
26
+ const strPrefix = prefix ? chalk_1.default.yellow(`[${prefix}]`) : '';
27
+ const strMessage = isSystemLog ? chalk_1.default.blue(message) : message;
28
+ const arrayInfo = [
29
+ strPrefixGlobal,
30
+ strLevel,
31
+ strTime,
32
+ strPrefix,
33
+ strMessage
34
+ ];
35
+ return arrayInfo.filter(Boolean).join(' ');
36
+ }))
37
+ }),
38
+ // new transports.File({
39
+ // format: format.combine(
40
+ // format.timestamp(),
41
+ // format.json()
42
+ // ),
43
+ // dirname: logFilePath.substring(0, logFilePath.lastIndexOf('/')),
44
+ // filename: logFilePath.substring(logFilePath.lastIndexOf('/') + 1),
45
+ // })
46
+ ]
47
+ });
48
+ }
49
+ getCurrentTime() {
50
+ return (0, dayjs_1.default)().format('DD/MM/YYYY HH:mm:ss');
51
+ }
52
+ log(message, args) {
53
+ const { prefix = '' } = args || {};
54
+ const payload = {
55
+ prefix,
56
+ time: this.getCurrentTime(),
57
+ isSystemLog: typeof args === 'string'
58
+ };
59
+ this.logger.info(message, payload);
60
+ }
61
+ error(message, args) {
62
+ const { prefix = '' } = args || {};
63
+ const payload = {
64
+ prefix,
65
+ time: this.getCurrentTime(),
66
+ isSystemLog: typeof args === 'string'
67
+ };
68
+ this.logger.error(message, payload);
69
+ }
70
+ warn(message, args) {
71
+ const { prefix = '' } = args || {};
72
+ const payload = {
73
+ prefix,
74
+ time: this.getCurrentTime(),
75
+ isSystemLog: typeof args === 'string'
76
+ };
77
+ this.logger.warn(message, payload);
78
+ }
79
+ debug(message, args) {
80
+ const { prefix = '' } = args || {};
81
+ const payload = {
82
+ prefix,
83
+ time: this.getCurrentTime(),
84
+ isSystemLog: typeof args === 'string'
85
+ };
86
+ this.logger.debug(message, payload);
87
+ }
88
+ verbose(message, args) {
89
+ const { prefix = '' } = args || {};
90
+ const payload = {
91
+ prefix,
92
+ time: this.getCurrentTime(),
93
+ isSystemLog: typeof args === 'string'
94
+ };
95
+ this.logger.verbose(message, payload);
96
+ }
97
+ fatal(message, args) {
98
+ const { prefix = '' } = args || {};
99
+ const payload = {
100
+ prefix,
101
+ time: this.getCurrentTime(),
102
+ isSystemLog: typeof args === 'string'
103
+ };
104
+ this.logger.log('fatal', message, payload);
105
+ }
106
+ }
107
+ exports.ExternalUtilsLogger = ExternalUtilsLogger;
@@ -0,0 +1,17 @@
1
+ export interface LoggerOptions {
2
+ level?: string;
3
+ logFilePath?: string;
4
+ prefixGlobal?: string;
5
+ }
6
+ export interface IArgumentsLog {
7
+ prefix?: string;
8
+ }
9
+ export type LogLevel = 'error' | 'warn' | 'info' | 'debug' | 'verbose' | 'fatal';
10
+ export interface ILoggerService {
11
+ log(message: string, args?: IArgumentsLog): void;
12
+ error(message: string, args?: IArgumentsLog): void;
13
+ warn(message: string, args?: IArgumentsLog): void;
14
+ debug?(message: string, args?: IArgumentsLog): void;
15
+ verbose?(message: string, args?: IArgumentsLog): void;
16
+ fatal?(message: string, args?: IArgumentsLog): void;
17
+ }
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@kkristen/nest-utils",
3
+ "version": "1.0.0",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "scripts": {
10
+ "wdev": "npx tsc -w",
11
+ "build": "npx tsc",
12
+ "prepublishOnly": "npm run build"
13
+ },
14
+ "exports": {
15
+ ".": {
16
+ "import": "./dist/index.js",
17
+ "require": "./dist/index.js",
18
+ "types": "./dist/index.d.ts"
19
+ }
20
+ },
21
+ "peerDependencies": {
22
+ "@nestjs/common": ">=10.0.0",
23
+ "@nestjs/config": ">=4.0.0",
24
+ "chalk": "^5.0.0",
25
+ "dayjs": "^1.0.0",
26
+ "winston": "^3.0.0"
27
+ },
28
+ "devDependencies": {
29
+ "@nestjs/common": "^11.1.9",
30
+ "@types/node": "^24.10.1",
31
+ "chalk": "^5.0.0",
32
+ "dayjs": "^1.0.0",
33
+ "winston": "^3.0.0"
34
+ },
35
+ "keywords": [],
36
+ "author": "",
37
+ "license": "ISC",
38
+ "description": ""
39
+ }