@ajke/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +357 -0
- package/dist/chunk-AT2R2CGV.js +234 -0
- package/dist/chunk-AT2R2CGV.js.map +1 -0
- package/dist/chunk-EUXUH3YW.js +15 -0
- package/dist/chunk-EUXUH3YW.js.map +1 -0
- package/dist/chunk-YUBEJL4T.cjs +234 -0
- package/dist/chunk-YUBEJL4T.cjs.map +1 -0
- package/dist/chunk-ZBDE64SD.cjs +15 -0
- package/dist/chunk-ZBDE64SD.cjs.map +1 -0
- package/dist/config.cjs +10 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.cts +13 -0
- package/dist/config.d.ts +13 -0
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -0
- package/dist/index.cjs +974 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +255 -0
- package/dist/index.d.ts +255 -0
- package/dist/index.js +974 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/index.cjs +10 -0
- package/dist/middleware/index.cjs.map +1 -0
- package/dist/middleware/index.d.cts +18 -0
- package/dist/middleware/index.d.ts +18 -0
- package/dist/middleware/index.js +10 -0
- package/dist/middleware/index.js.map +1 -0
- package/package.json +56 -0
- package/src/README.md +285 -0
- package/src/config.ts +14 -0
- package/src/context/execution-context.ts +36 -0
- package/src/context/index.ts +1 -0
- package/src/decorators/core/exception-filters.decorator.ts +24 -0
- package/src/decorators/core/index.ts +6 -0
- package/src/decorators/core/injectable.decorator.ts +41 -0
- package/src/decorators/core/optional.decorator.ts +9 -0
- package/src/decorators/core/set-metadata.decorator.ts +20 -0
- package/src/decorators/core/use-guards.decorator.ts +14 -0
- package/src/decorators/core/use-interceptors.decorator.ts +16 -0
- package/src/decorators/http/controller.decorator.ts +230 -0
- package/src/decorators/http/header.decorator.ts +11 -0
- package/src/decorators/http/http-code.decorator.ts +8 -0
- package/src/decorators/http/index.ts +6 -0
- package/src/decorators/http/redirect.decorator.ts +13 -0
- package/src/decorators/http/route-mapping.decorator.ts +22 -0
- package/src/decorators/http/route-params.decorator.ts +60 -0
- package/src/decorators/index.ts +3 -0
- package/src/decorators/modules/global.decorator.ts +8 -0
- package/src/decorators/modules/index.ts +2 -0
- package/src/decorators/modules/module.decorator.ts +16 -0
- package/src/exceptions/http-exception.ts +17 -0
- package/src/exceptions/http-exceptions.ts +85 -0
- package/src/exceptions/index.ts +2 -0
- package/src/index.ts +11 -0
- package/src/injector/index.ts +1 -0
- package/src/injector/injector.ts +103 -0
- package/src/injector/module-compiler.ts +48 -0
- package/src/injector/module.factory.ts +74 -0
- package/src/interfaces/core/filter.interface.ts +5 -0
- package/src/interfaces/core/guard.interface.ts +5 -0
- package/src/interfaces/core/index.ts +5 -0
- package/src/interfaces/core/interceptor.interface.ts +9 -0
- package/src/interfaces/core/lifecycle.interface.ts +19 -0
- package/src/interfaces/core/pipe.interface.ts +9 -0
- package/src/interfaces/http/index.ts +1 -0
- package/src/interfaces/http/response.interface.ts +27 -0
- package/src/interfaces/index.ts +3 -0
- package/src/interfaces/modules/index.ts +1 -0
- package/src/interfaces/modules/module.interface.ts +17 -0
- package/src/middleware/error-handler.middleware.ts +63 -0
- package/src/middleware/index.ts +2 -0
- package/src/middleware/request-logger.middleware.ts +17 -0
- package/src/pipes/index.ts +3 -0
- package/src/pipes/validate.pipe.ts +79 -0
- package/src/pipes/zod-query.pipe.ts +42 -0
- package/src/pipes/zod-validate.pipe.ts +49 -0
- package/src/services/index.ts +1 -0
- package/src/services/reflector.service.ts +24 -0
- package/src/utils/apply-decorators.util.ts +17 -0
- package/src/utils/forward-ref.util.ts +14 -0
- package/src/utils/index.ts +22 -0
- package/src/utils/logger.util.ts +189 -0
- package/src/utils/response.util.ts +72 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/exceptions/http-exception.ts
|
|
2
|
+
var HttpException = class extends Error {
|
|
3
|
+
constructor(response, statusCode) {
|
|
4
|
+
super(typeof response === "string" ? response : _nullishCoalesce(response.message, () => ( "HttpException")));
|
|
5
|
+
this.response = response;
|
|
6
|
+
this.statusCode = statusCode;
|
|
7
|
+
this.name = "HttpException";
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
getStatus() {
|
|
12
|
+
return this.statusCode;
|
|
13
|
+
}
|
|
14
|
+
getResponse() {
|
|
15
|
+
return this.response;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// src/middleware/error-handler.middleware.ts
|
|
20
|
+
function isHttpException(err) {
|
|
21
|
+
return err instanceof HttpException || err instanceof Error && typeof err.getStatus === "function" && typeof err.getResponse === "function";
|
|
22
|
+
}
|
|
23
|
+
function isZodError(err) {
|
|
24
|
+
return err instanceof Error && err.name === "ZodError" && Array.isArray(err.issues);
|
|
25
|
+
}
|
|
26
|
+
async function errorHandler(c, next) {
|
|
27
|
+
try {
|
|
28
|
+
await next();
|
|
29
|
+
} catch (error) {
|
|
30
|
+
if (isHttpException(error)) {
|
|
31
|
+
const response = error.getResponse();
|
|
32
|
+
const body = typeof response === "string" ? { success: false, error: { code: error.name, message: response }, timestamp: (/* @__PURE__ */ new Date()).toISOString() } : { success: false, ...response, timestamp: (/* @__PURE__ */ new Date()).toISOString() };
|
|
33
|
+
return c.json(body, error.getStatus());
|
|
34
|
+
}
|
|
35
|
+
if (isZodError(error)) {
|
|
36
|
+
const details = error.issues.map((i) => ({
|
|
37
|
+
field: i.path.join("."),
|
|
38
|
+
message: i.message,
|
|
39
|
+
code: i.code
|
|
40
|
+
}));
|
|
41
|
+
return c.json(
|
|
42
|
+
{
|
|
43
|
+
success: false,
|
|
44
|
+
error: { code: "VALIDATION_ERROR", message: "Validation failed", details },
|
|
45
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
46
|
+
},
|
|
47
|
+
400
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
console.error("Unhandled error:", error);
|
|
51
|
+
return c.json(
|
|
52
|
+
{
|
|
53
|
+
success: false,
|
|
54
|
+
error: {
|
|
55
|
+
code: "INTERNAL_ERROR",
|
|
56
|
+
message: error instanceof Error ? error.message : "Internal server error"
|
|
57
|
+
},
|
|
58
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
59
|
+
},
|
|
60
|
+
500
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// src/utils/logger.util.ts
|
|
66
|
+
var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
|
|
67
|
+
LogLevel2["ERROR"] = "error";
|
|
68
|
+
LogLevel2["WARN"] = "warn";
|
|
69
|
+
LogLevel2["INFO"] = "info";
|
|
70
|
+
LogLevel2["DEBUG"] = "debug";
|
|
71
|
+
return LogLevel2;
|
|
72
|
+
})(LogLevel || {});
|
|
73
|
+
var META_PLACEHOLDER = "[unserializable-meta]";
|
|
74
|
+
function stringifyLogMeta(meta) {
|
|
75
|
+
try {
|
|
76
|
+
const keys = Object.keys(meta).sort();
|
|
77
|
+
const sorted = {};
|
|
78
|
+
for (const k of keys) sorted[k] = meta[k];
|
|
79
|
+
return JSON.stringify(sorted);
|
|
80
|
+
} catch (e) {
|
|
81
|
+
return META_PLACEHOLDER;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
var colors = {
|
|
85
|
+
reset: "\x1B[0m",
|
|
86
|
+
bright: "\x1B[1m",
|
|
87
|
+
red: "\x1B[31m",
|
|
88
|
+
green: "\x1B[32m",
|
|
89
|
+
yellow: "\x1B[33m",
|
|
90
|
+
blue: "\x1B[34m",
|
|
91
|
+
magenta: "\x1B[35m",
|
|
92
|
+
cyan: "\x1B[36m",
|
|
93
|
+
gray: "\x1B[90m"
|
|
94
|
+
};
|
|
95
|
+
function getStatusColor(status) {
|
|
96
|
+
if (status >= 500) return colors.red;
|
|
97
|
+
if (status >= 400) return colors.yellow;
|
|
98
|
+
if (status >= 300) return colors.cyan;
|
|
99
|
+
if (status >= 200) return colors.green;
|
|
100
|
+
return colors.gray;
|
|
101
|
+
}
|
|
102
|
+
function getMethodColor(method) {
|
|
103
|
+
switch (method) {
|
|
104
|
+
case "GET":
|
|
105
|
+
return colors.green;
|
|
106
|
+
case "POST":
|
|
107
|
+
return colors.blue;
|
|
108
|
+
case "PUT":
|
|
109
|
+
return colors.yellow;
|
|
110
|
+
case "DELETE":
|
|
111
|
+
return colors.red;
|
|
112
|
+
case "PATCH":
|
|
113
|
+
return colors.magenta;
|
|
114
|
+
default:
|
|
115
|
+
return colors.gray;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
var Logger = class _Logger {
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
constructor() {
|
|
123
|
+
this.logLevel = "info" /* INFO */;
|
|
124
|
+
this.enableColors = true;
|
|
125
|
+
}
|
|
126
|
+
static getInstance() {
|
|
127
|
+
if (!_Logger.instance) {
|
|
128
|
+
_Logger.instance = new _Logger();
|
|
129
|
+
}
|
|
130
|
+
return _Logger.instance;
|
|
131
|
+
}
|
|
132
|
+
shouldLog(level) {
|
|
133
|
+
const levels = Object.values(LogLevel);
|
|
134
|
+
const currentLevelIndex = levels.indexOf(this.logLevel);
|
|
135
|
+
const messageLevelIndex = levels.indexOf(level);
|
|
136
|
+
return messageLevelIndex <= currentLevelIndex;
|
|
137
|
+
}
|
|
138
|
+
formatMessage(level, message, context, meta) {
|
|
139
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
140
|
+
const contextStr = context ? ` [${context}]` : "";
|
|
141
|
+
const metaStr = meta && Object.keys(meta).length > 0 ? ` | ${stringifyLogMeta(meta)}` : "";
|
|
142
|
+
const baseMessage = `[${timestamp}] ${level.toUpperCase()}${contextStr}: ${message}${metaStr}`;
|
|
143
|
+
if (!this.enableColors) return baseMessage;
|
|
144
|
+
const colorMap = {
|
|
145
|
+
["error" /* ERROR */]: colors.red,
|
|
146
|
+
["warn" /* WARN */]: colors.yellow,
|
|
147
|
+
["info" /* INFO */]: colors.blue,
|
|
148
|
+
["debug" /* DEBUG */]: colors.gray
|
|
149
|
+
};
|
|
150
|
+
return `${colorMap[level]}${baseMessage}${colors.reset}`;
|
|
151
|
+
}
|
|
152
|
+
// HTTP request logging (like Hono's logger)
|
|
153
|
+
http(method, path, status, duration, userAgent) {
|
|
154
|
+
if (!this.shouldLog("info" /* INFO */)) return;
|
|
155
|
+
const methodColor = this.enableColors ? getMethodColor(method) : "";
|
|
156
|
+
const statusColor = this.enableColors ? getStatusColor(status) : "";
|
|
157
|
+
const reset = this.enableColors ? colors.reset : "";
|
|
158
|
+
const methodStr = `${methodColor}${method}${reset}`;
|
|
159
|
+
const statusStr = `${statusColor}${status}${reset}`;
|
|
160
|
+
const durationStr = duration > 1e3 ? `${colors.red}${duration}ms${reset}` : `${duration}ms`;
|
|
161
|
+
const logMessage = `${methodStr} ${path} ${statusStr} ${durationStr}`;
|
|
162
|
+
if (userAgent) {
|
|
163
|
+
console.log(`${logMessage} - ${colors.gray}${userAgent}${reset}`);
|
|
164
|
+
} else {
|
|
165
|
+
console.log(logMessage);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Standard logging methods
|
|
169
|
+
error(message, context, meta) {
|
|
170
|
+
if (this.shouldLog("error" /* ERROR */)) {
|
|
171
|
+
console.error(this.formatMessage("error" /* ERROR */, message, context, meta));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
warn(message, context, meta) {
|
|
175
|
+
if (this.shouldLog("warn" /* WARN */)) {
|
|
176
|
+
console.warn(this.formatMessage("warn" /* WARN */, message, context, meta));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
info(message, context, meta) {
|
|
180
|
+
if (this.shouldLog("info" /* INFO */)) {
|
|
181
|
+
console.info(this.formatMessage("info" /* INFO */, message, context, meta));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
debug(message, context, meta) {
|
|
185
|
+
if (this.shouldLog("debug" /* DEBUG */)) {
|
|
186
|
+
console.debug(this.formatMessage("debug" /* DEBUG */, message, context, meta));
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// Static methods for convenience
|
|
190
|
+
static http(method, path, status, duration, userAgent) {
|
|
191
|
+
_Logger.getInstance().http(method, path, status, duration, userAgent);
|
|
192
|
+
}
|
|
193
|
+
static error(message, context, meta) {
|
|
194
|
+
_Logger.getInstance().error(message, context, meta);
|
|
195
|
+
}
|
|
196
|
+
static warn(message, context, meta) {
|
|
197
|
+
_Logger.getInstance().warn(message, context, meta);
|
|
198
|
+
}
|
|
199
|
+
static info(message, context, meta) {
|
|
200
|
+
_Logger.getInstance().info(message, context, meta);
|
|
201
|
+
}
|
|
202
|
+
static debug(message, context, meta) {
|
|
203
|
+
_Logger.getInstance().debug(message, context, meta);
|
|
204
|
+
}
|
|
205
|
+
// Configuration methods
|
|
206
|
+
setLogLevel(level) {
|
|
207
|
+
this.logLevel = level;
|
|
208
|
+
}
|
|
209
|
+
setColors(enabled) {
|
|
210
|
+
this.enableColors = enabled;
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
var logger = Logger.getInstance();
|
|
214
|
+
|
|
215
|
+
// src/middleware/request-logger.middleware.ts
|
|
216
|
+
async function requestLogger(c, next) {
|
|
217
|
+
const start = Date.now();
|
|
218
|
+
const method = c.req.method;
|
|
219
|
+
const path = c.req.path;
|
|
220
|
+
const userAgent = c.req.header("User-Agent");
|
|
221
|
+
await next();
|
|
222
|
+
const end = Date.now();
|
|
223
|
+
const duration = end - start;
|
|
224
|
+
const status = c.res.status;
|
|
225
|
+
logger.http(method, path, status, duration, userAgent);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
exports.HttpException = HttpException; exports.logger = logger; exports.errorHandler = errorHandler; exports.requestLogger = requestLogger;
|
|
234
|
+
//# sourceMappingURL=chunk-YUBEJL4T.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/sohanfahad/Documents/workspaces/cf-worker-workpace/cf-hono-starter/packages/core/dist/chunk-YUBEJL4T.cjs","../src/exceptions/http-exception.ts","../src/middleware/error-handler.middleware.ts","../src/utils/logger.util.ts","../src/middleware/request-logger.middleware.ts"],"names":["LogLevel"],"mappings":"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","file":"/Users/sohanfahad/Documents/workspaces/cf-worker-workpace/cf-hono-starter/packages/core/dist/chunk-YUBEJL4T.cjs","sourcesContent":[null,"export class HttpException extends Error {\n\tconstructor(\n\t\tprivate readonly response: string | Record<string, any>,\n\t\tprivate readonly statusCode: number\n\t) {\n\t\tsuper(typeof response === \"string\" ? response : (response as any).message ?? \"HttpException\");\n\t\tthis.name = \"HttpException\";\n\t}\n\n\tgetStatus(): number {\n\t\treturn this.statusCode;\n\t}\n\n\tgetResponse(): string | Record<string, any> {\n\t\treturn this.response;\n\t}\n}\n","import type { Context, Next } from \"hono\";\nimport { HttpException } from \"../exceptions/http-exception\";\n\nfunction isHttpException(err: unknown): err is HttpException {\n\treturn (\n\t\terr instanceof HttpException ||\n\t\t(err instanceof Error &&\n\t\t\ttypeof (err as any).getStatus === \"function\" &&\n\t\t\ttypeof (err as any).getResponse === \"function\")\n\t);\n}\n\nfunction isZodError(err: unknown): err is Error & { issues: Array<{ path: (string | number)[]; message: string; code: string }> } {\n\treturn (\n\t\terr instanceof Error &&\n\t\t(err as any).name === \"ZodError\" &&\n\t\tArray.isArray((err as any).issues)\n\t);\n}\n\nexport async function errorHandler(c: Context, next: Next) {\n\ttry {\n\t\tawait next();\n\t} catch (error) {\n\t\tif (isHttpException(error)) {\n\t\t\tconst response = error.getResponse();\n\t\t\tconst body =\n\t\t\t\ttypeof response === \"string\"\n\t\t\t\t\t? { success: false, error: { code: error.name, message: response }, timestamp: new Date().toISOString() }\n\t\t\t\t\t: { success: false, ...response, timestamp: new Date().toISOString() };\n\t\t\treturn c.json(body, error.getStatus() as any);\n\t\t}\n\n\t\tif (isZodError(error)) {\n\t\t\tconst details = error.issues.map((i) => ({\n\t\t\t\tfield: i.path.join(\".\"),\n\t\t\t\tmessage: i.message,\n\t\t\t\tcode: i.code,\n\t\t\t}));\n\t\t\treturn c.json(\n\t\t\t\t{\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: { code: \"VALIDATION_ERROR\", message: \"Validation failed\", details },\n\t\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t\t},\n\t\t\t\t400,\n\t\t\t);\n\t\t}\n\n\t\tconsole.error(\"Unhandled error:\", error);\n\t\treturn c.json(\n\t\t\t{\n\t\t\t\tsuccess: false,\n\t\t\t\terror: {\n\t\t\t\t\tcode: \"INTERNAL_ERROR\",\n\t\t\t\t\tmessage: error instanceof Error ? error.message : \"Internal server error\",\n\t\t\t\t},\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t},\n\t\t\t500\n\t\t);\n\t}\n}\n","export enum LogLevel {\n\tERROR = \"error\",\n\tWARN = \"warn\",\n\tINFO = \"info\",\n\tDEBUG = \"debug\",\n}\n\nconst META_PLACEHOLDER = \"[unserializable-meta]\";\n\n/** Stable, one-line JSON for log drains / grepping (keys sorted). */\nexport function stringifyLogMeta(meta: Record<string, unknown>): string {\n\ttry {\n\t\tconst keys = Object.keys(meta).sort();\n\t\tconst sorted: Record<string, unknown> = {};\n\t\tfor (const k of keys) sorted[k] = meta[k];\n\t\treturn JSON.stringify(sorted);\n\t} catch {\n\t\treturn META_PLACEHOLDER;\n\t}\n}\n\nexport function formatError(error: unknown): string {\n\tif (error instanceof Error) {\n\t\tconst stack = error.stack ? error.stack.split(\"\\n\").slice(0, 4).join(\" | \") : \"\";\n\t\treturn stack ? `${error.message} | ${stack}` : error.message;\n\t}\n\treturn String(error);\n}\n\n// ANSI color codes for terminal output\nconst colors = {\n\treset: \"\\x1b[0m\",\n\tbright: \"\\x1b[1m\",\n\tred: \"\\x1b[31m\",\n\tgreen: \"\\x1b[32m\",\n\tyellow: \"\\x1b[33m\",\n\tblue: \"\\x1b[34m\",\n\tmagenta: \"\\x1b[35m\",\n\tcyan: \"\\x1b[36m\",\n\tgray: \"\\x1b[90m\",\n};\n\n// HTTP status code colors\nfunction getStatusColor(status: number): string {\n\tif (status >= 500) return colors.red;\n\tif (status >= 400) return colors.yellow;\n\tif (status >= 300) return colors.cyan;\n\tif (status >= 200) return colors.green;\n\treturn colors.gray;\n}\n\n// HTTP method colors\nfunction getMethodColor(method: string): string {\n\tswitch (method) {\n\t\tcase \"GET\":\n\t\t\treturn colors.green;\n\t\tcase \"POST\":\n\t\t\treturn colors.blue;\n\t\tcase \"PUT\":\n\t\t\treturn colors.yellow;\n\t\tcase \"DELETE\":\n\t\t\treturn colors.red;\n\t\tcase \"PATCH\":\n\t\t\treturn colors.magenta;\n\t\tdefault:\n\t\t\treturn colors.gray;\n\t}\n}\n\nexport class Logger {\n\tprivate static instance: Logger;\n\tprivate logLevel: LogLevel;\n\tprivate enableColors: boolean;\n\n\tprivate constructor() {\n\t\tthis.logLevel = LogLevel.INFO;\n\t\tthis.enableColors = true; // Enable colors by default\n\t}\n\n\tpublic static getInstance(): Logger {\n\t\tif (!Logger.instance) {\n\t\t\tLogger.instance = new Logger();\n\t\t}\n\t\treturn Logger.instance;\n\t}\n\n\tprivate shouldLog(level: LogLevel): boolean {\n\t\tconst levels = Object.values(LogLevel);\n\t\tconst currentLevelIndex = levels.indexOf(this.logLevel);\n\t\tconst messageLevelIndex = levels.indexOf(level);\n\t\treturn messageLevelIndex <= currentLevelIndex;\n\t}\n\n\tprivate formatMessage(level: LogLevel, message: string, context?: string, meta?: Record<string, unknown>): string {\n\t\tconst timestamp = new Date().toISOString();\n\t\tconst contextStr = context ? ` [${context}]` : \"\";\n\t\tconst metaStr = meta && Object.keys(meta).length > 0 ? ` | ${stringifyLogMeta(meta)}` : \"\";\n\t\tconst baseMessage = `[${timestamp}] ${level.toUpperCase()}${contextStr}: ${message}${metaStr}`;\n\n\t\tif (!this.enableColors) return baseMessage;\n\n\t\tconst colorMap = {\n\t\t\t[LogLevel.ERROR]: colors.red,\n\t\t\t[LogLevel.WARN]: colors.yellow,\n\t\t\t[LogLevel.INFO]: colors.blue,\n\t\t\t[LogLevel.DEBUG]: colors.gray,\n\t\t};\n\n\t\treturn `${colorMap[level]}${baseMessage}${colors.reset}`;\n\t}\n\n\t// HTTP request logging (like Hono's logger)\n\thttp(method: string, path: string, status: number, duration: number, userAgent?: string): void {\n\t\tif (!this.shouldLog(LogLevel.INFO)) return;\n\n\t\tconst methodColor = this.enableColors ? getMethodColor(method) : \"\";\n\t\tconst statusColor = this.enableColors ? getStatusColor(status) : \"\";\n\t\tconst reset = this.enableColors ? colors.reset : \"\";\n\n\t\tconst methodStr = `${methodColor}${method}${reset}`;\n\t\tconst statusStr = `${statusColor}${status}${reset}`;\n\t\tconst durationStr = duration > 1000 ? `${colors.red}${duration}ms${reset}` : `${duration}ms`;\n\n\t\tconst logMessage = `${methodStr} ${path} ${statusStr} ${durationStr}`;\n\n\t\tif (userAgent) {\n\t\t\tconsole.log(`${logMessage} - ${colors.gray}${userAgent}${reset}`);\n\t\t} else {\n\t\t\tconsole.log(logMessage);\n\t\t}\n\t}\n\n\t// Standard logging methods\n\terror(message: string, context?: string, meta?: Record<string, unknown>): void {\n\t\tif (this.shouldLog(LogLevel.ERROR)) {\n\t\t\tconsole.error(this.formatMessage(LogLevel.ERROR, message, context, meta));\n\t\t}\n\t}\n\n\twarn(message: string, context?: string, meta?: Record<string, unknown>): void {\n\t\tif (this.shouldLog(LogLevel.WARN)) {\n\t\t\tconsole.warn(this.formatMessage(LogLevel.WARN, message, context, meta));\n\t\t}\n\t}\n\n\tinfo(message: string, context?: string, meta?: Record<string, unknown>): void {\n\t\tif (this.shouldLog(LogLevel.INFO)) {\n\t\t\tconsole.info(this.formatMessage(LogLevel.INFO, message, context, meta));\n\t\t}\n\t}\n\n\tdebug(message: string, context?: string, meta?: Record<string, unknown>): void {\n\t\tif (this.shouldLog(LogLevel.DEBUG)) {\n\t\t\tconsole.debug(this.formatMessage(LogLevel.DEBUG, message, context, meta));\n\t\t}\n\t}\n\n\t// Static methods for convenience\n\tstatic http(method: string, path: string, status: number, duration: number, userAgent?: string): void {\n\t\tLogger.getInstance().http(method, path, status, duration, userAgent);\n\t}\n\n\tstatic error(message: string, context?: string, meta?: Record<string, unknown>): void {\n\t\tLogger.getInstance().error(message, context, meta);\n\t}\n\n\tstatic warn(message: string, context?: string, meta?: Record<string, unknown>): void {\n\t\tLogger.getInstance().warn(message, context, meta);\n\t}\n\n\tstatic info(message: string, context?: string, meta?: Record<string, unknown>): void {\n\t\tLogger.getInstance().info(message, context, meta);\n\t}\n\n\tstatic debug(message: string, context?: string, meta?: Record<string, unknown>): void {\n\t\tLogger.getInstance().debug(message, context, meta);\n\t}\n\n\t// Configuration methods\n\tsetLogLevel(level: LogLevel): void {\n\t\tthis.logLevel = level;\n\t}\n\n\tsetColors(enabled: boolean): void {\n\t\tthis.enableColors = enabled;\n\t}\n}\n\nexport const logger = Logger.getInstance();\n","import type { Context, Next } from \"hono\";\nimport { logger } from \"../utils/logger.util\";\n\nexport async function requestLogger(c: Context, next: Next) {\n\tconst start = Date.now();\n\tconst method = c.req.method;\n\tconst path = c.req.path;\n\tconst userAgent = c.req.header(\"User-Agent\");\n\n\tawait next();\n\n\tconst end = Date.now();\n\tconst duration = end - start;\n\tconst status = c.res.status;\n\n\tlogger.http(method, path, status, duration, userAgent);\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
exports.__decorateClass = __decorateClass;
|
|
15
|
+
//# sourceMappingURL=chunk-ZBDE64SD.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/sohanfahad/Documents/workspaces/cf-worker-workpace/cf-hono-starter/packages/core/dist/chunk-ZBDE64SD.cjs"],"names":[],"mappings":"AAAA,6EAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,iBAAiB,EAAE,MAAM,CAAC,wBAAwB;AACtD,IAAI,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AACzD,EAAE,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,MAAM;AAChF,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE;AAC5D,IAAI,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AACjC,MAAM,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM;AACpF,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC;AACpD,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA;AACE;AACF,0CAAC","file":"/Users/sohanfahad/Documents/workspaces/cf-worker-workpace/cf-hono-starter/packages/core/dist/chunk-ZBDE64SD.cjs"}
|
package/dist/config.cjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-ZBDE64SD.cjs');
|
|
2
|
+
|
|
3
|
+
// src/config.ts
|
|
4
|
+
function defineConfig(config) {
|
|
5
|
+
return config;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.defineConfig = defineConfig;
|
|
10
|
+
//# sourceMappingURL=config.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/sohanfahad/Documents/workspaces/cf-worker-workpace/cf-hono-starter/packages/core/dist/config.cjs","../src/config.ts"],"names":[],"mappings":"AAAA,yGAA6B;AAC7B;AACA;ACSO,SAAS,YAAA,CAAa,MAAA,EAAgC;AAC3D,EAAA,OAAO,MAAA;AACT;ADPA;AACE;AACF,oCAAC","file":"/Users/sohanfahad/Documents/workspaces/cf-worker-workpace/cf-hono-starter/packages/core/dist/config.cjs","sourcesContent":[null,"export interface WiltConfig {\n /** Directory where generated modules are placed. Default: \"src/modules/app\" */\n modulesDir?: string;\n /** Source directory. Default: \"src\" */\n srcDir?: string;\n /** Defaults applied when running `wilt generate module` */\n generate?: {\n files?: Array<\"module\" | \"controller\" | \"service\" | \"dto\" | \"entity\">;\n };\n}\n\nexport function defineConfig(config: WiltConfig): WiltConfig {\n return config;\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface WiltConfig {
|
|
2
|
+
/** Directory where generated modules are placed. Default: "src/modules/app" */
|
|
3
|
+
modulesDir?: string;
|
|
4
|
+
/** Source directory. Default: "src" */
|
|
5
|
+
srcDir?: string;
|
|
6
|
+
/** Defaults applied when running `wilt generate module` */
|
|
7
|
+
generate?: {
|
|
8
|
+
files?: Array<"module" | "controller" | "service" | "dto" | "entity">;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
declare function defineConfig(config: WiltConfig): WiltConfig;
|
|
12
|
+
|
|
13
|
+
export { type WiltConfig, defineConfig };
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface WiltConfig {
|
|
2
|
+
/** Directory where generated modules are placed. Default: "src/modules/app" */
|
|
3
|
+
modulesDir?: string;
|
|
4
|
+
/** Source directory. Default: "src" */
|
|
5
|
+
srcDir?: string;
|
|
6
|
+
/** Defaults applied when running `wilt generate module` */
|
|
7
|
+
generate?: {
|
|
8
|
+
files?: Array<"module" | "controller" | "service" | "dto" | "entity">;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
declare function defineConfig(config: WiltConfig): WiltConfig;
|
|
12
|
+
|
|
13
|
+
export { type WiltConfig, defineConfig };
|
package/dist/config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.ts"],"sourcesContent":["export interface WiltConfig {\n /** Directory where generated modules are placed. Default: \"src/modules/app\" */\n modulesDir?: string;\n /** Source directory. Default: \"src\" */\n srcDir?: string;\n /** Defaults applied when running `wilt generate module` */\n generate?: {\n files?: Array<\"module\" | \"controller\" | \"service\" | \"dto\" | \"entity\">;\n };\n}\n\nexport function defineConfig(config: WiltConfig): WiltConfig {\n return config;\n}\n"],"mappings":";;;AAWO,SAAS,aAAa,QAAgC;AAC3D,SAAO;AACT;","names":[]}
|