@innei/pretty-logger-nestjs 0.3.3 → 0.3.5
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.d.mts +32 -26
- package/dist/index.d.ts +32 -26
- package/dist/index.js +136 -153
- package/dist/index.mjs +127 -126
- package/index.ts +2 -3
- package/logger.module.ts +1 -2
- package/logger.service.ts +59 -75
- package/package.json +16 -14
- package/{tsup.config.ts → tsdown.config.ts} +2 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
export { LoggerConsolaOptions, WrappedConsola, createLoggerConsola as createLogger } from '@innei/pretty-logger-core';
|
|
5
|
-
import { ConsoleLogger, ConsoleLoggerOptions, DynamicModule } from '@nestjs/common';
|
|
6
|
-
|
|
7
|
-
declare class Logger extends ConsoleLogger {
|
|
8
|
-
private static loggerInstance;
|
|
9
|
-
static setLoggerInstance(logger: WrappedConsola): void;
|
|
10
|
-
constructor(context: string, options: ConsoleLoggerOptions);
|
|
11
|
-
private _getColorByLogLevel;
|
|
12
|
-
private lastTimestampAt;
|
|
13
|
-
private _updateAndGetTimestampDiff;
|
|
14
|
-
protected formatMessage(message: any, logLevel?: string): any;
|
|
15
|
-
log(message: any, context?: string, ...argv: any[]): void;
|
|
16
|
-
warn(message: any, context?: string, ...argv: any[]): void;
|
|
17
|
-
debug(message: any, context?: string, ...argv: any[]): void;
|
|
18
|
-
verbose(message: any, context?: string, ...argv: any[]): void;
|
|
19
|
-
fatal(message: any, context?: string, ...argv: any[]): void;
|
|
20
|
-
error(message: any, context?: string, ...argv: any[]): void;
|
|
21
|
-
private print;
|
|
22
|
-
private defaultContextPrefix;
|
|
23
|
-
}
|
|
1
|
+
import * as Core from "@innei/pretty-logger-core";
|
|
2
|
+
import { ConsolaInstance, LoggerConsolaOptions, WrappedConsola, WrappedConsola as WrappedConsola$1, createLoggerConsola as createLogger } from "@innei/pretty-logger-core";
|
|
3
|
+
import { ConsoleLogger, ConsoleLoggerOptions, DynamicModule } from "@nestjs/common";
|
|
24
4
|
|
|
5
|
+
//#region logger.module.d.ts
|
|
25
6
|
interface LoggerModuleOptions {
|
|
26
|
-
|
|
7
|
+
consola: ConsolaInstance;
|
|
27
8
|
}
|
|
28
9
|
declare class LoggerModule {
|
|
29
|
-
|
|
10
|
+
static forFeature(options?: LoggerModuleOptions): DynamicModule;
|
|
30
11
|
}
|
|
31
12
|
|
|
32
|
-
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region logger.service.d.ts
|
|
15
|
+
declare class Logger extends ConsoleLogger {
|
|
16
|
+
private static loggerInstance;
|
|
17
|
+
static setLoggerInstance(logger: WrappedConsola$1): void;
|
|
18
|
+
constructor(context?: string, options?: ConsoleLoggerOptions);
|
|
19
|
+
private lastTimestampAt;
|
|
20
|
+
private _updateAndGetTimestampDiff;
|
|
21
|
+
private getContextPrefix;
|
|
22
|
+
private get workerPrefix();
|
|
23
|
+
/**
|
|
24
|
+
* Check if the last argument looks like a NestJS context string.
|
|
25
|
+
* NestJS passes context as the last string argument (e.g., 'AppService', 'UserController').
|
|
26
|
+
* Context strings are typically PascalCase class names.
|
|
27
|
+
*/
|
|
28
|
+
private isContextString;
|
|
29
|
+
private print;
|
|
30
|
+
log(...args: any[]): void;
|
|
31
|
+
info(...args: any[]): void;
|
|
32
|
+
warn(...args: any[]): void;
|
|
33
|
+
debug(...args: any[]): void;
|
|
34
|
+
verbose(...args: any[]): void;
|
|
35
|
+
fatal(...args: any[]): void;
|
|
36
|
+
error(...args: any[]): void;
|
|
37
|
+
} //#endregion
|
|
38
|
+
export { Core, Logger, LoggerConsolaOptions, LoggerModule, WrappedConsola, createLogger };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
export { LoggerConsolaOptions, WrappedConsola, createLoggerConsola as createLogger } from '@innei/pretty-logger-core';
|
|
5
|
-
import { ConsoleLogger, ConsoleLoggerOptions, DynamicModule } from '@nestjs/common';
|
|
6
|
-
|
|
7
|
-
declare class Logger extends ConsoleLogger {
|
|
8
|
-
private static loggerInstance;
|
|
9
|
-
static setLoggerInstance(logger: WrappedConsola): void;
|
|
10
|
-
constructor(context: string, options: ConsoleLoggerOptions);
|
|
11
|
-
private _getColorByLogLevel;
|
|
12
|
-
private lastTimestampAt;
|
|
13
|
-
private _updateAndGetTimestampDiff;
|
|
14
|
-
protected formatMessage(message: any, logLevel?: string): any;
|
|
15
|
-
log(message: any, context?: string, ...argv: any[]): void;
|
|
16
|
-
warn(message: any, context?: string, ...argv: any[]): void;
|
|
17
|
-
debug(message: any, context?: string, ...argv: any[]): void;
|
|
18
|
-
verbose(message: any, context?: string, ...argv: any[]): void;
|
|
19
|
-
fatal(message: any, context?: string, ...argv: any[]): void;
|
|
20
|
-
error(message: any, context?: string, ...argv: any[]): void;
|
|
21
|
-
private print;
|
|
22
|
-
private defaultContextPrefix;
|
|
23
|
-
}
|
|
1
|
+
import * as Core from "@innei/pretty-logger-core";
|
|
2
|
+
import { ConsolaInstance, LoggerConsolaOptions, WrappedConsola, WrappedConsola as WrappedConsola$1, createLoggerConsola as createLogger } from "@innei/pretty-logger-core";
|
|
3
|
+
import { ConsoleLogger, ConsoleLoggerOptions, DynamicModule } from "@nestjs/common";
|
|
24
4
|
|
|
5
|
+
//#region logger.module.d.ts
|
|
25
6
|
interface LoggerModuleOptions {
|
|
26
|
-
|
|
7
|
+
consola: ConsolaInstance;
|
|
27
8
|
}
|
|
28
9
|
declare class LoggerModule {
|
|
29
|
-
|
|
10
|
+
static forFeature(options?: LoggerModuleOptions): DynamicModule;
|
|
30
11
|
}
|
|
31
12
|
|
|
32
|
-
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region logger.service.d.ts
|
|
15
|
+
declare class Logger extends ConsoleLogger {
|
|
16
|
+
private static loggerInstance;
|
|
17
|
+
static setLoggerInstance(logger: WrappedConsola$1): void;
|
|
18
|
+
constructor(context?: string, options?: ConsoleLoggerOptions);
|
|
19
|
+
private lastTimestampAt;
|
|
20
|
+
private _updateAndGetTimestampDiff;
|
|
21
|
+
private getContextPrefix;
|
|
22
|
+
private get workerPrefix();
|
|
23
|
+
/**
|
|
24
|
+
* Check if the last argument looks like a NestJS context string.
|
|
25
|
+
* NestJS passes context as the last string argument (e.g., 'AppService', 'UserController').
|
|
26
|
+
* Context strings are typically PascalCase class names.
|
|
27
|
+
*/
|
|
28
|
+
private isContextString;
|
|
29
|
+
private print;
|
|
30
|
+
log(...args: any[]): void;
|
|
31
|
+
info(...args: any[]): void;
|
|
32
|
+
warn(...args: any[]): void;
|
|
33
|
+
debug(...args: any[]): void;
|
|
34
|
+
verbose(...args: any[]): void;
|
|
35
|
+
fatal(...args: any[]): void;
|
|
36
|
+
error(...args: any[]): void;
|
|
37
|
+
} //#endregion
|
|
38
|
+
export { Core, Logger, LoggerConsolaOptions, LoggerModule, WrappedConsola, createLogger };
|
package/dist/index.js
CHANGED
|
@@ -1,169 +1,152 @@
|
|
|
1
|
-
|
|
1
|
+
//#region rolldown:runtime
|
|
2
2
|
var __create = Object.create;
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
var __commonJS = (cb, mod) => function() {
|
|
9
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
11
10
|
};
|
|
12
11
|
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
30
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
31
|
-
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
32
|
-
if (decorator = decorators[i])
|
|
33
|
-
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
34
|
-
if (kind && result)
|
|
35
|
-
__defProp(target, key, result);
|
|
36
|
-
return result;
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
13
|
+
key = keys[i];
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
|
+
get: ((k) => from[k]).bind(null, key),
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
37
20
|
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
22
|
+
value: mod,
|
|
23
|
+
enumerable: true
|
|
24
|
+
}) : target, mod));
|
|
38
25
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
LoggerModule: () => LoggerModule,
|
|
45
|
-
createLogger: () => import_pretty_logger_core3.createLoggerConsola
|
|
46
|
-
});
|
|
47
|
-
module.exports = __toCommonJS(nest_exports);
|
|
26
|
+
//#endregion
|
|
27
|
+
const __innei_pretty_logger_core = __toESM(require("@innei/pretty-logger-core"));
|
|
28
|
+
const __nestjs_common = __toESM(require("@nestjs/common"));
|
|
29
|
+
const node_cluster = __toESM(require("node:cluster"));
|
|
30
|
+
const picocolors = __toESM(require("picocolors"));
|
|
48
31
|
|
|
49
|
-
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const formatMessage = this.formatMessage(message, level);
|
|
115
|
-
const diff = this._updateAndGetTimestampDiff();
|
|
116
|
-
const workerPrefix = import_cluster.default.isWorker ? import_picocolors.default.yellow(`*Worker - ${import_cluster.default.worker.id}*`) : "";
|
|
117
|
-
if (context && !argv.length) {
|
|
118
|
-
print(
|
|
119
|
-
`${workerPrefix} [${import_picocolors.default.yellow(context)}] `,
|
|
120
|
-
formatMessage,
|
|
121
|
-
diff
|
|
122
|
-
);
|
|
123
|
-
} else if (!argv.length) {
|
|
124
|
-
print(`${workerPrefix} ${this.defaultContextPrefix}`, formatMessage, diff);
|
|
125
|
-
} else {
|
|
126
|
-
print(
|
|
127
|
-
`${workerPrefix} ${this.defaultContextPrefix}`,
|
|
128
|
-
message,
|
|
129
|
-
context,
|
|
130
|
-
...argv,
|
|
131
|
-
diff
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
32
|
+
//#region logger.service.ts
|
|
33
|
+
var Logger = class Logger extends __nestjs_common.ConsoleLogger {
|
|
34
|
+
static setLoggerInstance(logger) {
|
|
35
|
+
this.loggerInstance = logger;
|
|
36
|
+
}
|
|
37
|
+
constructor(context, options) {
|
|
38
|
+
super(context || "", options || {});
|
|
39
|
+
this.lastTimestampAt = Date.now();
|
|
40
|
+
}
|
|
41
|
+
_updateAndGetTimestampDiff() {
|
|
42
|
+
const includeTimestamp = this.lastTimestampAt && this.options?.timestamp;
|
|
43
|
+
const now = Date.now();
|
|
44
|
+
const result = includeTimestamp ? picocolors.default.yellow(` +${now - this.lastTimestampAt}ms`) : "";
|
|
45
|
+
this.lastTimestampAt = now;
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
getContextPrefix(context) {
|
|
49
|
+
const ctx = context || this.context;
|
|
50
|
+
return ctx ? `[${picocolors.default.yellow(ctx)}]` : `[${picocolors.default.red("System")}]`;
|
|
51
|
+
}
|
|
52
|
+
get workerPrefix() {
|
|
53
|
+
return node_cluster.default.isWorker ? picocolors.default.yellow(`*Worker - ${node_cluster.default.worker.id}*`) : "";
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if the last argument looks like a NestJS context string.
|
|
57
|
+
* NestJS passes context as the last string argument (e.g., 'AppService', 'UserController').
|
|
58
|
+
* Context strings are typically PascalCase class names.
|
|
59
|
+
*/
|
|
60
|
+
isContextString(value) {
|
|
61
|
+
if (typeof value !== "string") return false;
|
|
62
|
+
return /^[A-Z][a-zA-Z0-9]*$/.test(value);
|
|
63
|
+
}
|
|
64
|
+
print(level, ...args) {
|
|
65
|
+
const print = Logger.loggerInstance[level];
|
|
66
|
+
const diff = this._updateAndGetTimestampDiff();
|
|
67
|
+
let context;
|
|
68
|
+
let messages = args;
|
|
69
|
+
if (args.length > 0 && this.isContextString(args.at(-1))) {
|
|
70
|
+
context = args.at(-1);
|
|
71
|
+
messages = args.slice(0, -1);
|
|
72
|
+
}
|
|
73
|
+
const prefix = this.workerPrefix ? `${this.workerPrefix} ${this.getContextPrefix(context)}` : this.getContextPrefix(context);
|
|
74
|
+
print(prefix, ...messages, diff);
|
|
75
|
+
}
|
|
76
|
+
log(...args) {
|
|
77
|
+
this.print("info", ...args);
|
|
78
|
+
}
|
|
79
|
+
info(...args) {
|
|
80
|
+
this.print("info", ...args);
|
|
81
|
+
}
|
|
82
|
+
warn(...args) {
|
|
83
|
+
this.print("warn", ...args);
|
|
84
|
+
}
|
|
85
|
+
debug(...args) {
|
|
86
|
+
this.print("debug", ...args);
|
|
87
|
+
}
|
|
88
|
+
verbose(...args) {
|
|
89
|
+
this.print("verbose", ...args);
|
|
90
|
+
}
|
|
91
|
+
fatal(...args) {
|
|
92
|
+
this.print("fatal", ...args);
|
|
93
|
+
}
|
|
94
|
+
error(...args) {
|
|
95
|
+
this.print("error", ...args);
|
|
96
|
+
}
|
|
135
97
|
};
|
|
136
|
-
|
|
137
|
-
var Logger = _Logger;
|
|
98
|
+
Logger.loggerInstance = (0, __innei_pretty_logger_core.createLoggerConsola)();
|
|
138
99
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.70.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js
|
|
102
|
+
var require_decorate = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.70.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js"(exports, module) {
|
|
103
|
+
function __decorate(decorators, target, key, desc) {
|
|
104
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
105
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
106
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
107
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
108
|
+
}
|
|
109
|
+
module.exports = __decorate, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
110
|
+
} });
|
|
111
|
+
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region logger.module.ts
|
|
114
|
+
var import_decorate = __toESM(require_decorate());
|
|
115
|
+
var _LoggerModule;
|
|
116
|
+
let LoggerModule = _LoggerModule = class LoggerModule$1 {
|
|
117
|
+
static forFeature(options) {
|
|
118
|
+
const { consola } = options || {};
|
|
119
|
+
return {
|
|
120
|
+
module: _LoggerModule,
|
|
121
|
+
providers: [{
|
|
122
|
+
provide: "L",
|
|
123
|
+
useValue: consola || (0, __innei_pretty_logger_core.createLoggerConsola)()
|
|
124
|
+
}]
|
|
125
|
+
};
|
|
126
|
+
}
|
|
155
127
|
};
|
|
156
|
-
LoggerModule =
|
|
157
|
-
|
|
158
|
-
]
|
|
128
|
+
LoggerModule = _LoggerModule = (0, import_decorate.default)([(0, __nestjs_common.Module)({
|
|
129
|
+
providers: [Logger],
|
|
130
|
+
exports: [Logger]
|
|
131
|
+
})], LoggerModule);
|
|
159
132
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
Logger,
|
|
167
|
-
LoggerModule,
|
|
168
|
-
createLogger
|
|
133
|
+
//#endregion
|
|
134
|
+
Object.defineProperty(exports, 'Core', {
|
|
135
|
+
enumerable: true,
|
|
136
|
+
get: function () {
|
|
137
|
+
return __innei_pretty_logger_core;
|
|
138
|
+
}
|
|
169
139
|
});
|
|
140
|
+
exports.Logger = Logger;
|
|
141
|
+
Object.defineProperty(exports, 'LoggerModule', {
|
|
142
|
+
enumerable: true,
|
|
143
|
+
get: function () {
|
|
144
|
+
return LoggerModule;
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
Object.defineProperty(exports, 'createLogger', {
|
|
148
|
+
enumerable: true,
|
|
149
|
+
get: function () {
|
|
150
|
+
return __innei_pretty_logger_core.createLoggerConsola;
|
|
151
|
+
}
|
|
152
|
+
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,134 +1,135 @@
|
|
|
1
|
+
import * as Core from "@innei/pretty-logger-core";
|
|
2
|
+
import { createLoggerConsola, createLoggerConsola as createLogger } from "@innei/pretty-logger-core";
|
|
3
|
+
import { ConsoleLogger, Module } from "@nestjs/common";
|
|
4
|
+
import cluster from "node:cluster";
|
|
5
|
+
import picocolors from "picocolors";
|
|
6
|
+
|
|
7
|
+
//#region rolldown:runtime
|
|
8
|
+
var __create = Object.create;
|
|
1
9
|
var __defProp = Object.defineProperty;
|
|
2
10
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (kind && result)
|
|
9
|
-
__defProp(target, key, result);
|
|
10
|
-
return result;
|
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
12
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __commonJS = (cb, mod) => function() {
|
|
15
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
11
16
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
this.lastTimestampAt = Date.now();
|
|
22
|
-
this.defaultContextPrefix = this.context ? `[${picocolors.yellow(this.context)}] ` : `[${picocolors.red("System")}] `;
|
|
23
|
-
}
|
|
24
|
-
static setLoggerInstance(logger) {
|
|
25
|
-
this.loggerInstance = logger;
|
|
26
|
-
}
|
|
27
|
-
_getColorByLogLevel(logLevel) {
|
|
28
|
-
switch (logLevel) {
|
|
29
|
-
case "debug":
|
|
30
|
-
return picocolors.cyan;
|
|
31
|
-
case "warn":
|
|
32
|
-
return picocolors.yellow;
|
|
33
|
-
case "error":
|
|
34
|
-
return picocolors.red;
|
|
35
|
-
case "verbose":
|
|
36
|
-
return picocolors.gray;
|
|
37
|
-
default:
|
|
38
|
-
return picocolors.green;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
_updateAndGetTimestampDiff() {
|
|
42
|
-
const includeTimestamp = this.lastTimestampAt && this.options.timestamp;
|
|
43
|
-
const now = Date.now();
|
|
44
|
-
const result = includeTimestamp ? picocolors.yellow(` +${now - this.lastTimestampAt}ms`) : "";
|
|
45
|
-
this.lastTimestampAt = now;
|
|
46
|
-
return result;
|
|
47
|
-
}
|
|
48
|
-
formatMessage(message, logLevel = "log") {
|
|
49
|
-
const formatMessage = typeof message == "string" ? this._getColorByLogLevel(logLevel)(message) : message;
|
|
50
|
-
return formatMessage;
|
|
51
|
-
}
|
|
52
|
-
log(message, context, ...argv) {
|
|
53
|
-
this.print("info", message, context, ...argv);
|
|
54
|
-
}
|
|
55
|
-
warn(message, context, ...argv) {
|
|
56
|
-
this.print("warn", message, context, ...argv);
|
|
57
|
-
}
|
|
58
|
-
debug(message, context, ...argv) {
|
|
59
|
-
this.print("debug", message, context, ...argv);
|
|
60
|
-
}
|
|
61
|
-
verbose(message, context, ...argv) {
|
|
62
|
-
this.print("verbose", message, context, ...argv);
|
|
63
|
-
}
|
|
64
|
-
fatal(message, context, ...argv) {
|
|
65
|
-
this.print("fatal", message, context, ...argv);
|
|
66
|
-
}
|
|
67
|
-
error(message, context, ...argv) {
|
|
68
|
-
const trace = context;
|
|
69
|
-
const _context = argv[0];
|
|
70
|
-
if (!trace && _context) {
|
|
71
|
-
this.print("error", message, _context, ...argv.slice(1));
|
|
72
|
-
} else {
|
|
73
|
-
this.print("error", message, context, ...argv);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
print(level, message, context, ...argv) {
|
|
77
|
-
const print = _Logger.loggerInstance[level];
|
|
78
|
-
const formatMessage = this.formatMessage(message, level);
|
|
79
|
-
const diff = this._updateAndGetTimestampDiff();
|
|
80
|
-
const workerPrefix = cluster.isWorker ? picocolors.yellow(`*Worker - ${cluster.worker.id}*`) : "";
|
|
81
|
-
if (context && !argv.length) {
|
|
82
|
-
print(
|
|
83
|
-
`${workerPrefix} [${picocolors.yellow(context)}] `,
|
|
84
|
-
formatMessage,
|
|
85
|
-
diff
|
|
86
|
-
);
|
|
87
|
-
} else if (!argv.length) {
|
|
88
|
-
print(`${workerPrefix} ${this.defaultContextPrefix}`, formatMessage, diff);
|
|
89
|
-
} else {
|
|
90
|
-
print(
|
|
91
|
-
`${workerPrefix} ${this.defaultContextPrefix}`,
|
|
92
|
-
message,
|
|
93
|
-
context,
|
|
94
|
-
...argv,
|
|
95
|
-
diff
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
19
|
+
key = keys[i];
|
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
21
|
+
get: ((k) => from[k]).bind(null, key),
|
|
22
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return to;
|
|
99
26
|
};
|
|
100
|
-
|
|
101
|
-
|
|
27
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: true
|
|
30
|
+
}) : target, mod));
|
|
102
31
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region logger.service.ts
|
|
34
|
+
var Logger = class Logger extends ConsoleLogger {
|
|
35
|
+
static setLoggerInstance(logger) {
|
|
36
|
+
this.loggerInstance = logger;
|
|
37
|
+
}
|
|
38
|
+
constructor(context, options) {
|
|
39
|
+
super(context || "", options || {});
|
|
40
|
+
this.lastTimestampAt = Date.now();
|
|
41
|
+
}
|
|
42
|
+
_updateAndGetTimestampDiff() {
|
|
43
|
+
const includeTimestamp = this.lastTimestampAt && this.options?.timestamp;
|
|
44
|
+
const now = Date.now();
|
|
45
|
+
const result = includeTimestamp ? picocolors.yellow(` +${now - this.lastTimestampAt}ms`) : "";
|
|
46
|
+
this.lastTimestampAt = now;
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
getContextPrefix(context) {
|
|
50
|
+
const ctx = context || this.context;
|
|
51
|
+
return ctx ? `[${picocolors.yellow(ctx)}]` : `[${picocolors.red("System")}]`;
|
|
52
|
+
}
|
|
53
|
+
get workerPrefix() {
|
|
54
|
+
return cluster.isWorker ? picocolors.yellow(`*Worker - ${cluster.worker.id}*`) : "";
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if the last argument looks like a NestJS context string.
|
|
58
|
+
* NestJS passes context as the last string argument (e.g., 'AppService', 'UserController').
|
|
59
|
+
* Context strings are typically PascalCase class names.
|
|
60
|
+
*/
|
|
61
|
+
isContextString(value) {
|
|
62
|
+
if (typeof value !== "string") return false;
|
|
63
|
+
return /^[A-Z][a-zA-Z0-9]*$/.test(value);
|
|
64
|
+
}
|
|
65
|
+
print(level, ...args) {
|
|
66
|
+
const print = Logger.loggerInstance[level];
|
|
67
|
+
const diff = this._updateAndGetTimestampDiff();
|
|
68
|
+
let context;
|
|
69
|
+
let messages = args;
|
|
70
|
+
if (args.length > 0 && this.isContextString(args.at(-1))) {
|
|
71
|
+
context = args.at(-1);
|
|
72
|
+
messages = args.slice(0, -1);
|
|
73
|
+
}
|
|
74
|
+
const prefix = this.workerPrefix ? `${this.workerPrefix} ${this.getContextPrefix(context)}` : this.getContextPrefix(context);
|
|
75
|
+
print(prefix, ...messages, diff);
|
|
76
|
+
}
|
|
77
|
+
log(...args) {
|
|
78
|
+
this.print("info", ...args);
|
|
79
|
+
}
|
|
80
|
+
info(...args) {
|
|
81
|
+
this.print("info", ...args);
|
|
82
|
+
}
|
|
83
|
+
warn(...args) {
|
|
84
|
+
this.print("warn", ...args);
|
|
85
|
+
}
|
|
86
|
+
debug(...args) {
|
|
87
|
+
this.print("debug", ...args);
|
|
88
|
+
}
|
|
89
|
+
verbose(...args) {
|
|
90
|
+
this.print("verbose", ...args);
|
|
91
|
+
}
|
|
92
|
+
fatal(...args) {
|
|
93
|
+
this.print("fatal", ...args);
|
|
94
|
+
}
|
|
95
|
+
error(...args) {
|
|
96
|
+
this.print("error", ...args);
|
|
97
|
+
}
|
|
119
98
|
};
|
|
120
|
-
|
|
121
|
-
Module({ providers: [Logger], exports: [Logger] })
|
|
122
|
-
], LoggerModule);
|
|
99
|
+
Logger.loggerInstance = createLoggerConsola();
|
|
123
100
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
101
|
+
//#endregion
|
|
102
|
+
//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.70.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js
|
|
103
|
+
var require_decorate = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.70.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js"(exports, module) {
|
|
104
|
+
function __decorate(decorators, target, key, desc) {
|
|
105
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
106
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
107
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
108
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
109
|
+
}
|
|
110
|
+
module.exports = __decorate, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
111
|
+
} });
|
|
112
|
+
|
|
113
|
+
//#endregion
|
|
114
|
+
//#region logger.module.ts
|
|
115
|
+
var import_decorate = __toESM(require_decorate());
|
|
116
|
+
var _LoggerModule;
|
|
117
|
+
let LoggerModule = _LoggerModule = class LoggerModule$1 {
|
|
118
|
+
static forFeature(options) {
|
|
119
|
+
const { consola } = options || {};
|
|
120
|
+
return {
|
|
121
|
+
module: _LoggerModule,
|
|
122
|
+
providers: [{
|
|
123
|
+
provide: "L",
|
|
124
|
+
useValue: consola || createLoggerConsola()
|
|
125
|
+
}]
|
|
126
|
+
};
|
|
127
|
+
}
|
|
134
128
|
};
|
|
129
|
+
LoggerModule = _LoggerModule = (0, import_decorate.default)([Module({
|
|
130
|
+
providers: [Logger],
|
|
131
|
+
exports: [Logger]
|
|
132
|
+
})], LoggerModule);
|
|
133
|
+
|
|
134
|
+
//#endregion
|
|
135
|
+
export { Core, Logger, LoggerModule, createLogger };
|
package/index.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
export { Logger } from './logger.service.js'
|
|
2
1
|
export { LoggerModule } from './logger.module.js'
|
|
2
|
+
export { Logger } from './logger.service.js'
|
|
3
3
|
export {
|
|
4
|
-
type LoggerConsolaOptions,
|
|
5
4
|
createLoggerConsola as createLogger,
|
|
5
|
+
type LoggerConsolaOptions,
|
|
6
6
|
type WrappedConsola,
|
|
7
7
|
} from '@innei/pretty-logger-core'
|
|
8
|
-
|
|
9
8
|
export * as Core from '@innei/pretty-logger-core'
|
package/logger.module.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { ConsolaInstance } from '@innei/pretty-logger-core'
|
|
2
|
-
import type { DynamicModule } from '@nestjs/common'
|
|
3
|
-
|
|
4
2
|
import { createLoggerConsola } from '@innei/pretty-logger-core'
|
|
3
|
+
import type { DynamicModule } from '@nestjs/common'
|
|
5
4
|
import { Module } from '@nestjs/common'
|
|
6
5
|
|
|
7
6
|
import { Logger } from './logger.service.js'
|
package/logger.service.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import cluster from 'cluster'
|
|
1
|
+
import cluster from 'node:cluster'
|
|
2
2
|
import picocolors from 'picocolors'
|
|
3
3
|
import type { WrappedConsola } from '@innei/pretty-logger-core'
|
|
4
4
|
import type { ConsoleLoggerOptions } from '@nestjs/common'
|
|
@@ -6,7 +6,7 @@ import type { ConsoleLoggerOptions } from '@nestjs/common'
|
|
|
6
6
|
import { createLoggerConsola } from '@innei/pretty-logger-core'
|
|
7
7
|
import { ConsoleLogger } from '@nestjs/common'
|
|
8
8
|
|
|
9
|
-
type
|
|
9
|
+
type LogLevel =
|
|
10
10
|
| 'info'
|
|
11
11
|
| 'log'
|
|
12
12
|
| 'error'
|
|
@@ -22,27 +22,13 @@ export class Logger extends ConsoleLogger {
|
|
|
22
22
|
this.loggerInstance = logger
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
constructor(context
|
|
26
|
-
super(context, options)
|
|
27
|
-
}
|
|
28
|
-
private _getColorByLogLevel(logLevel: string) {
|
|
29
|
-
switch (logLevel) {
|
|
30
|
-
case 'debug':
|
|
31
|
-
return picocolors.cyan
|
|
32
|
-
case 'warn':
|
|
33
|
-
return picocolors.yellow
|
|
34
|
-
case 'error':
|
|
35
|
-
return picocolors.red
|
|
36
|
-
case 'verbose':
|
|
37
|
-
return picocolors.gray
|
|
38
|
-
default:
|
|
39
|
-
return picocolors.green
|
|
40
|
-
}
|
|
25
|
+
constructor(context?: string, options?: ConsoleLoggerOptions) {
|
|
26
|
+
super(context || '', options || {})
|
|
41
27
|
}
|
|
42
28
|
|
|
43
29
|
private lastTimestampAt: number = Date.now()
|
|
44
30
|
private _updateAndGetTimestampDiff() {
|
|
45
|
-
const includeTimestamp = this.lastTimestampAt && this.options
|
|
31
|
+
const includeTimestamp = this.lastTimestampAt && this.options?.timestamp
|
|
46
32
|
const now = Date.now()
|
|
47
33
|
const result = includeTimestamp
|
|
48
34
|
? picocolors.yellow(` +${now - this.lastTimestampAt}ms`)
|
|
@@ -50,77 +36,75 @@ export class Logger extends ConsoleLogger {
|
|
|
50
36
|
this.lastTimestampAt = now
|
|
51
37
|
return result
|
|
52
38
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
: message
|
|
58
|
-
return formatMessage
|
|
39
|
+
|
|
40
|
+
private getContextPrefix(context?: string) {
|
|
41
|
+
const ctx = context || this.context
|
|
42
|
+
return ctx ? `[${picocolors.yellow(ctx)}]` : `[${picocolors.red('System')}]`
|
|
59
43
|
}
|
|
60
44
|
|
|
61
|
-
|
|
62
|
-
|
|
45
|
+
private get workerPrefix() {
|
|
46
|
+
return cluster.isWorker
|
|
47
|
+
? picocolors.yellow(`*Worker - ${cluster.worker!.id}*`)
|
|
48
|
+
: ''
|
|
63
49
|
}
|
|
64
50
|
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Check if the last argument looks like a NestJS context string.
|
|
53
|
+
* NestJS passes context as the last string argument (e.g., 'AppService', 'UserController').
|
|
54
|
+
* Context strings are typically PascalCase class names.
|
|
55
|
+
*/
|
|
56
|
+
private isContextString(value: unknown): value is string {
|
|
57
|
+
if (typeof value !== 'string') return false
|
|
58
|
+
// Context is usually a short PascalCase identifier (class name)
|
|
59
|
+
// Not a sentence, not a path, not containing spaces or special chars
|
|
60
|
+
return /^[A-Z][a-zA-Z0-9]*$/.test(value)
|
|
67
61
|
}
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
|
|
63
|
+
private print(level: LogLevel, ...args: any[]) {
|
|
64
|
+
const print = Logger.loggerInstance[level]
|
|
65
|
+
const diff = this._updateAndGetTimestampDiff()
|
|
66
|
+
|
|
67
|
+
let context: string | undefined
|
|
68
|
+
let messages = args
|
|
69
|
+
|
|
70
|
+
// Check if the last argument is a context string (NestJS convention)
|
|
71
|
+
if (args.length > 0 && this.isContextString(args.at(-1))) {
|
|
72
|
+
context = args.at(-1)
|
|
73
|
+
messages = args.slice(0, -1)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const prefix = this.workerPrefix
|
|
77
|
+
? `${this.workerPrefix} ${this.getContextPrefix(context)}`
|
|
78
|
+
: this.getContextPrefix(context)
|
|
79
|
+
|
|
80
|
+
print(prefix, ...messages, diff)
|
|
70
81
|
}
|
|
71
82
|
|
|
72
|
-
|
|
73
|
-
this.print('
|
|
83
|
+
log(...args: any[]) {
|
|
84
|
+
this.print('info', ...args)
|
|
74
85
|
}
|
|
75
86
|
|
|
76
|
-
|
|
77
|
-
this.print('
|
|
87
|
+
info(...args: any[]) {
|
|
88
|
+
this.print('info', ...args)
|
|
78
89
|
}
|
|
79
90
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
91
|
+
warn(...args: any[]) {
|
|
92
|
+
this.print('warn', ...args)
|
|
93
|
+
}
|
|
83
94
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
} else {
|
|
87
|
-
this.print('error', message, context, ...argv)
|
|
88
|
-
}
|
|
95
|
+
debug(...args: any[]) {
|
|
96
|
+
this.print('debug', ...args)
|
|
89
97
|
}
|
|
90
98
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
context?: string,
|
|
95
|
-
...argv: any[]
|
|
96
|
-
) {
|
|
97
|
-
const print = Logger.loggerInstance[level]
|
|
98
|
-
const formatMessage = this.formatMessage(message, level)
|
|
99
|
-
const diff = this._updateAndGetTimestampDiff()
|
|
99
|
+
verbose(...args: any[]) {
|
|
100
|
+
this.print('verbose', ...args)
|
|
101
|
+
}
|
|
100
102
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
: ''
|
|
104
|
-
if (context && !argv.length) {
|
|
105
|
-
print(
|
|
106
|
-
`${workerPrefix} [${picocolors.yellow(context)}] `,
|
|
107
|
-
formatMessage,
|
|
108
|
-
diff,
|
|
109
|
-
)
|
|
110
|
-
} else if (!argv.length) {
|
|
111
|
-
print(`${workerPrefix} ${this.defaultContextPrefix}`, formatMessage, diff)
|
|
112
|
-
} else {
|
|
113
|
-
print(
|
|
114
|
-
`${workerPrefix} ${this.defaultContextPrefix}`,
|
|
115
|
-
message,
|
|
116
|
-
context,
|
|
117
|
-
...argv,
|
|
118
|
-
diff,
|
|
119
|
-
)
|
|
120
|
-
}
|
|
103
|
+
fatal(...args: any[]) {
|
|
104
|
+
this.print('fatal', ...args)
|
|
121
105
|
}
|
|
122
106
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
107
|
+
error(...args: any[]) {
|
|
108
|
+
this.print('error', ...args)
|
|
109
|
+
}
|
|
126
110
|
}
|
package/package.json
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@innei/pretty-logger-nestjs",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"main": "dist/index.js",
|
|
5
|
-
"module": "dist/index.mjs",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
3
|
+
"version": "0.3.5",
|
|
7
4
|
"exports": {
|
|
8
5
|
".": {
|
|
9
6
|
"require": "./dist/index.js",
|
|
10
7
|
"import": "./dist/index.mjs"
|
|
11
8
|
}
|
|
12
9
|
},
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"string-width": "npm:@innei/string-width@7.1.1-fork.0",
|
|
19
|
-
"@innei/pretty-logger-core": "0.3.3"
|
|
10
|
+
"main": "dist/index.js",
|
|
11
|
+
"module": "dist/index.mjs",
|
|
12
|
+
"types": "dist/index.d.ts",
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsdown"
|
|
20
15
|
},
|
|
21
16
|
"peerDependencies": {
|
|
22
17
|
"@nestjs/common": ">=10"
|
|
23
18
|
},
|
|
24
|
-
"
|
|
25
|
-
"
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@innei/pretty-logger-core": "workspace:*",
|
|
21
|
+
"cron": "4.3.0",
|
|
22
|
+
"defu": "^6.1.3",
|
|
23
|
+
"picocolors": "^1.0.0",
|
|
24
|
+
"std-env": "^3.5.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@oxc-project/runtime": "^0.70.0"
|
|
26
28
|
}
|
|
27
|
-
}
|
|
29
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineConfig } from '
|
|
1
|
+
import { defineConfig } from 'tsdown'
|
|
2
2
|
|
|
3
3
|
export default defineConfig({
|
|
4
4
|
clean: true,
|
|
@@ -6,4 +6,5 @@ export default defineConfig({
|
|
|
6
6
|
entry: ['index.ts'],
|
|
7
7
|
dts: true,
|
|
8
8
|
format: ['cjs', 'esm'],
|
|
9
|
+
noExternal: ['@oxc-project/runtime']
|
|
9
10
|
})
|