@engjts/nexus 0.1.10 → 0.1.11
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/advanced/playground/generatePlaygroundHTML.js +38 -38
- package/dist/advanced/playground/generatePlaygroundHTML.js.map +1 -1
- package/dist/advanced/playground/playground.d.ts.map +1 -1
- package/dist/advanced/playground/playground.js +73 -5
- package/dist/advanced/playground/playground.js.map +1 -1
- package/dist/advanced/postman/postman.d.ts.map +1 -1
- package/dist/advanced/postman/postman.js +10 -4
- package/dist/advanced/postman/postman.js.map +1 -1
- package/dist/advanced/swagger/swagger.d.ts.map +1 -1
- package/dist/advanced/swagger/swagger.js +24 -2
- package/dist/advanced/swagger/swagger.js.map +1 -1
- package/dist/advanced/template/engines.d.ts +90 -0
- package/dist/advanced/template/engines.d.ts.map +1 -0
- package/dist/advanced/template/engines.js +153 -0
- package/dist/advanced/template/engines.js.map +1 -0
- package/dist/advanced/template/index.d.ts +10 -0
- package/dist/advanced/template/index.d.ts.map +1 -0
- package/dist/advanced/template/index.js +16 -0
- package/dist/advanced/template/index.js.map +1 -0
- package/dist/core/application.d.ts +10 -0
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/application.js +64 -1
- package/dist/core/application.js.map +1 -1
- package/dist/core/router/file-router.d.ts.map +1 -1
- package/dist/core/router/file-router.js +4 -1
- package/dist/core/router/file-router.js.map +1 -1
- package/dist/core/router/index.d.ts +9 -1
- package/dist/core/router/index.d.ts.map +1 -1
- package/dist/core/router/index.js +11 -3
- package/dist/core/router/index.js.map +1 -1
- package/dist/core/router/radix-tree.d.ts +10 -3
- package/dist/core/router/radix-tree.d.ts.map +1 -1
- package/dist/core/router/radix-tree.js +118 -10
- package/dist/core/router/radix-tree.js.map +1 -1
- package/dist/core/types.d.ts +106 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +186 -0
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/security/headers.d.ts.map +1 -1
- package/dist/security/headers.js +5 -2
- package/dist/security/headers.js.map +1 -1
- package/package.json +2 -1
|
@@ -13,10 +13,16 @@ export declare class RadixNode {
|
|
|
13
13
|
handler: Handler | null;
|
|
14
14
|
middlewares: Middleware[];
|
|
15
15
|
children: RadixNode[];
|
|
16
|
-
type: 'static' | 'param' | 'wildcard';
|
|
16
|
+
type: 'static' | 'param' | 'regex' | 'pattern' | 'wildcard';
|
|
17
17
|
paramName?: string;
|
|
18
|
+
regex?: RegExp;
|
|
19
|
+
patternParams?: string[];
|
|
18
20
|
serializers: Map<number | string, SerializerFunction> | null;
|
|
19
|
-
constructor(segment: string, fullPath: string);
|
|
21
|
+
constructor(segment: string, fullPath: string, enableRegex?: boolean);
|
|
22
|
+
/**
|
|
23
|
+
* Escape special regex characters in a string
|
|
24
|
+
*/
|
|
25
|
+
private escapeRegex;
|
|
20
26
|
/**
|
|
21
27
|
* Add a child node
|
|
22
28
|
*/
|
|
@@ -35,7 +41,8 @@ export declare class RadixNode {
|
|
|
35
41
|
*/
|
|
36
42
|
export declare class RadixTree {
|
|
37
43
|
private root;
|
|
38
|
-
|
|
44
|
+
private enableRegex;
|
|
45
|
+
constructor(enableRegex?: boolean);
|
|
39
46
|
/**
|
|
40
47
|
* Insert a route into the tree
|
|
41
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radix-tree.d.ts","sourceRoot":"","sources":["../../../src/core/router/radix-tree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"radix-tree.d.ts","sourceRoot":"","sources":["../../../src/core/router/radix-tree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAUnD;;GAEG;AACH,qBAAa,SAAS;IAElB,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAG/B,WAAW,EAAE,UAAU,EAAE,CAAM;IAG/B,QAAQ,EAAE,SAAS,EAAE,CAAM;IAQ3B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAY;IAGvE,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAQ;gBAExD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe;IAqE3E;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAmB/B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAS5C;;OAEG;IACH,OAAO,CAAC,eAAe;CAS1B;AAED;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,WAAW,CAAU;gBAEjB,WAAW,GAAE,OAAe;IAKxC;;OAEG;IACH,MAAM,CACF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,UAAU,EAAO,EAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GACvD,IAAI;IAuBP;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;KAChE,GAAG,IAAI;IAkBR;;OAEG;IACH,OAAO,CAAC,UAAU;IAqFlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IAM5D;;OAEG;IACH,OAAO,CAAC,aAAa;CASxB"}
|
|
@@ -19,24 +19,86 @@ class RadixNode {
|
|
|
19
19
|
middlewares = [];
|
|
20
20
|
// Child nodes
|
|
21
21
|
children = [];
|
|
22
|
-
// Pattern type: 'static', 'param', or 'wildcard'
|
|
22
|
+
// Pattern type: 'static', 'param', 'regex', 'pattern', or 'wildcard'
|
|
23
|
+
// - static: exact match like /users
|
|
24
|
+
// - param: simple param like :id
|
|
25
|
+
// - regex: param with regex like :id(\d+)
|
|
26
|
+
// - pattern: inline pattern like category-:slug or file.:ext
|
|
27
|
+
// - wildcard: catch-all like *
|
|
23
28
|
type = 'static';
|
|
24
|
-
// Parameter name for param nodes
|
|
29
|
+
// Parameter name for param/regex nodes
|
|
25
30
|
paramName;
|
|
31
|
+
// Compiled regex for regex/pattern nodes (compiled once at startup)
|
|
32
|
+
regex;
|
|
33
|
+
// Parameter names for pattern type (can have multiple params in one segment)
|
|
34
|
+
patternParams;
|
|
26
35
|
// Compiled serializers for response (status code → serializer)
|
|
27
36
|
serializers = null;
|
|
28
|
-
constructor(segment, fullPath) {
|
|
37
|
+
constructor(segment, fullPath, enableRegex = false) {
|
|
29
38
|
this.segment = segment;
|
|
30
39
|
this.fullPath = fullPath;
|
|
31
40
|
// Detect node type
|
|
32
41
|
if (segment.startsWith(':')) {
|
|
33
|
-
|
|
34
|
-
|
|
42
|
+
// Check for regex pattern: :param(pattern)
|
|
43
|
+
const regexMatch = enableRegex ? segment.match(/^:([^(]+)\((.+)\)$/) : null;
|
|
44
|
+
if (regexMatch) {
|
|
45
|
+
// Regex parameter: :id(\d+)
|
|
46
|
+
this.type = 'regex';
|
|
47
|
+
this.paramName = regexMatch[1];
|
|
48
|
+
this.regex = new RegExp(`^${regexMatch[2]}$`);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Simple parameter: :id
|
|
52
|
+
this.type = 'param';
|
|
53
|
+
this.paramName = segment.slice(1);
|
|
54
|
+
}
|
|
35
55
|
}
|
|
36
56
|
else if (segment === '*' || segment.startsWith('*')) {
|
|
37
57
|
this.type = 'wildcard';
|
|
38
58
|
this.paramName = segment.length > 1 ? segment.slice(1) : 'wildcard';
|
|
39
59
|
}
|
|
60
|
+
else if (enableRegex && segment.includes(':')) {
|
|
61
|
+
// Inline pattern like: category-:slug, file.:ext, prefix-:id-suffix
|
|
62
|
+
this.type = 'pattern';
|
|
63
|
+
this.patternParams = [];
|
|
64
|
+
// Parse the segment and build regex
|
|
65
|
+
// Example: "category-:slug" -> regex: /^category-(.+)$/, params: ['slug']
|
|
66
|
+
// Example: "file.:ext(jpg|png)" -> regex: /^file\.(jpg|png)$/, params: ['ext']
|
|
67
|
+
let regexStr = '^';
|
|
68
|
+
let remaining = segment;
|
|
69
|
+
while (remaining.length > 0) {
|
|
70
|
+
// Find next param
|
|
71
|
+
const paramStart = remaining.indexOf(':');
|
|
72
|
+
if (paramStart === -1) {
|
|
73
|
+
// No more params, add rest as literal
|
|
74
|
+
regexStr += this.escapeRegex(remaining);
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
// Add literal part before param
|
|
78
|
+
if (paramStart > 0) {
|
|
79
|
+
regexStr += this.escapeRegex(remaining.slice(0, paramStart));
|
|
80
|
+
}
|
|
81
|
+
remaining = remaining.slice(paramStart + 1);
|
|
82
|
+
// Parse param name and optional pattern
|
|
83
|
+
const paramMatch = remaining.match(/^([^(./-]+)(?:\(([^)]+)\))?/);
|
|
84
|
+
if (paramMatch) {
|
|
85
|
+
const paramName = paramMatch[1];
|
|
86
|
+
const paramPattern = paramMatch[2] || '.+'; // default: match anything
|
|
87
|
+
this.patternParams.push(paramName);
|
|
88
|
+
regexStr += `(${paramPattern})`;
|
|
89
|
+
// Move past the param (name + optional pattern)
|
|
90
|
+
remaining = remaining.slice(paramMatch[0].length);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
regexStr += '$';
|
|
94
|
+
this.regex = new RegExp(regexStr);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Escape special regex characters in a string
|
|
99
|
+
*/
|
|
100
|
+
escapeRegex(str) {
|
|
101
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
40
102
|
}
|
|
41
103
|
/**
|
|
42
104
|
* Add a child node
|
|
@@ -74,8 +136,10 @@ class RadixNode {
|
|
|
74
136
|
getTypePriority(type) {
|
|
75
137
|
switch (type) {
|
|
76
138
|
case 'static': return 0;
|
|
77
|
-
case '
|
|
78
|
-
case '
|
|
139
|
+
case 'pattern': return 1; // inline patterns like category-:slug
|
|
140
|
+
case 'regex': return 2; // regex param like :id(\d+)
|
|
141
|
+
case 'param': return 3; // simple param like :id
|
|
142
|
+
case 'wildcard': return 4;
|
|
79
143
|
}
|
|
80
144
|
}
|
|
81
145
|
}
|
|
@@ -85,8 +149,10 @@ exports.RadixNode = RadixNode;
|
|
|
85
149
|
*/
|
|
86
150
|
class RadixTree {
|
|
87
151
|
root;
|
|
88
|
-
|
|
89
|
-
|
|
152
|
+
enableRegex;
|
|
153
|
+
constructor(enableRegex = false) {
|
|
154
|
+
this.root = new RadixNode('', '/', enableRegex);
|
|
155
|
+
this.enableRegex = enableRegex;
|
|
90
156
|
}
|
|
91
157
|
/**
|
|
92
158
|
* Insert a route into the tree
|
|
@@ -99,7 +165,7 @@ class RadixTree {
|
|
|
99
165
|
let child = current.findChild(segment);
|
|
100
166
|
if (!child) {
|
|
101
167
|
const fullPath = '/' + segments.slice(0, i + 1).join('/');
|
|
102
|
-
child = new RadixNode(segment, fullPath);
|
|
168
|
+
child = new RadixNode(segment, fullPath, this.enableRegex);
|
|
103
169
|
current.addChild(child);
|
|
104
170
|
}
|
|
105
171
|
current = child;
|
|
@@ -145,6 +211,48 @@ class RadixTree {
|
|
|
145
211
|
return result;
|
|
146
212
|
}
|
|
147
213
|
}
|
|
214
|
+
else if (child.type === 'pattern') {
|
|
215
|
+
// Inline pattern match - test regex and extract multiple params
|
|
216
|
+
const match = child.regex.exec(segment);
|
|
217
|
+
if (match) {
|
|
218
|
+
// Save old values for backtracking
|
|
219
|
+
const oldValues = {};
|
|
220
|
+
for (let i = 0; i < child.patternParams.length; i++) {
|
|
221
|
+
const paramName = child.patternParams[i];
|
|
222
|
+
oldValues[paramName] = params[paramName];
|
|
223
|
+
params[paramName] = match[i + 1]; // match[0] is full match
|
|
224
|
+
}
|
|
225
|
+
const result = this.searchNode(child, segments, index + 1, params);
|
|
226
|
+
if (result)
|
|
227
|
+
return result;
|
|
228
|
+
// Backtrack
|
|
229
|
+
for (const paramName of child.patternParams) {
|
|
230
|
+
if (oldValues[paramName] === undefined) {
|
|
231
|
+
delete params[paramName];
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
params[paramName] = oldValues[paramName];
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else if (child.type === 'regex') {
|
|
240
|
+
// Regex match - test pattern and capture value if matches
|
|
241
|
+
if (child.regex.test(segment)) {
|
|
242
|
+
const oldValue = params[child.paramName];
|
|
243
|
+
params[child.paramName] = segment;
|
|
244
|
+
const result = this.searchNode(child, segments, index + 1, params);
|
|
245
|
+
if (result)
|
|
246
|
+
return result;
|
|
247
|
+
// Backtrack
|
|
248
|
+
if (oldValue === undefined) {
|
|
249
|
+
delete params[child.paramName];
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
params[child.paramName] = oldValue;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
148
256
|
else if (child.type === 'param') {
|
|
149
257
|
// Parameter match - capture value
|
|
150
258
|
const oldValue = params[child.paramName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radix-tree.js","sourceRoot":"","sources":["../../../src/core/router/radix-tree.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"radix-tree.js","sourceRoot":"","sources":["../../../src/core/router/radix-tree.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -7,6 +7,33 @@ import { ZodSchema } from 'zod';
|
|
|
7
7
|
import { Application } from './application';
|
|
8
8
|
import { ContextStore, StoreConstructor, RequestStore, RequestStoreConstructor } from './store';
|
|
9
9
|
import { ResponseSchemaConfig, SerializerFunction } from './serializer';
|
|
10
|
+
/**
|
|
11
|
+
* Template engine interface for render() method
|
|
12
|
+
*/
|
|
13
|
+
export interface TemplateEngine {
|
|
14
|
+
/** Engine name (e.g., 'handlebars', 'ejs', 'pug') */
|
|
15
|
+
name: string;
|
|
16
|
+
/** File extensions this engine handles (e.g., ['.hbs', '.handlebars']) */
|
|
17
|
+
extensions: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Compile and render template with data
|
|
20
|
+
* @param template - Template string content
|
|
21
|
+
* @param data - Data to inject
|
|
22
|
+
* @returns Rendered string
|
|
23
|
+
*/
|
|
24
|
+
render(template: string, data: Record<string, any>): string | Promise<string>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Options for render() method
|
|
28
|
+
*/
|
|
29
|
+
export interface RenderOptions {
|
|
30
|
+
/** Template engine to use (default: auto-detect from extension or 'simple') */
|
|
31
|
+
engine?: string;
|
|
32
|
+
/** Status code for response (default: 200) */
|
|
33
|
+
status?: number;
|
|
34
|
+
/** Additional headers */
|
|
35
|
+
headers?: Record<string, string>;
|
|
36
|
+
}
|
|
10
37
|
/**
|
|
11
38
|
* HTTP methods supported by the framework
|
|
12
39
|
*/
|
|
@@ -219,6 +246,7 @@ export interface RouteMeta {
|
|
|
219
246
|
deprecated?: boolean;
|
|
220
247
|
summary?: string;
|
|
221
248
|
example?: string;
|
|
249
|
+
fileLocation?: string;
|
|
222
250
|
}
|
|
223
251
|
/**
|
|
224
252
|
* Route configuration object
|
|
@@ -254,9 +282,19 @@ export type ErrorHandler = (error: Error, ctx: Context) => Response | Promise<Re
|
|
|
254
282
|
export interface AppConfig {
|
|
255
283
|
contextPoolSize?: number;
|
|
256
284
|
enableJIT?: boolean;
|
|
285
|
+
/** Enable regex patterns in route params, e.g. /users/:id(\\d+) */
|
|
286
|
+
enableRegexRoutes?: boolean;
|
|
257
287
|
onError?: ErrorHandler;
|
|
258
288
|
debug?: boolean;
|
|
259
289
|
logRequests?: boolean;
|
|
290
|
+
/** Enable Handlebars template engine (zero overhead if not used) */
|
|
291
|
+
handlebars?: boolean;
|
|
292
|
+
/** Enable EJS template engine (zero overhead if not used) */
|
|
293
|
+
ejs?: boolean;
|
|
294
|
+
/** Enable Pug template engine (zero overhead if not used) */
|
|
295
|
+
pug?: boolean;
|
|
296
|
+
/** Enable Mustache template engine (zero overhead if not used) */
|
|
297
|
+
mustache?: boolean;
|
|
260
298
|
}
|
|
261
299
|
/**
|
|
262
300
|
* Plugin interface for extensibility
|
|
@@ -355,6 +393,35 @@ export interface RouteBase<TContext = Context> {
|
|
|
355
393
|
*/
|
|
356
394
|
export declare abstract class Route<TContext = Context, TDeps = any> {
|
|
357
395
|
pathName?: string;
|
|
396
|
+
/**
|
|
397
|
+
* Template engines registry (static, shared across all routes)
|
|
398
|
+
* @private
|
|
399
|
+
*/
|
|
400
|
+
private static templateEngines;
|
|
401
|
+
/**
|
|
402
|
+
* Register a custom template engine
|
|
403
|
+
* @param engine - Template engine implementation
|
|
404
|
+
*
|
|
405
|
+
* @example
|
|
406
|
+
* ```typescript
|
|
407
|
+
* import Handlebars from 'handlebars';
|
|
408
|
+
*
|
|
409
|
+
* Route.registerEngine({
|
|
410
|
+
* name: 'handlebars',
|
|
411
|
+
* extensions: ['.hbs', '.handlebars'],
|
|
412
|
+
* render: (template, data) => {
|
|
413
|
+
* const compiled = Handlebars.compile(template);
|
|
414
|
+
* return compiled(data);
|
|
415
|
+
* }
|
|
416
|
+
* });
|
|
417
|
+
* ```
|
|
418
|
+
*/
|
|
419
|
+
static registerEngine(engine: TemplateEngine): void;
|
|
420
|
+
/**
|
|
421
|
+
* Get registered template engine by name or extension
|
|
422
|
+
* @private
|
|
423
|
+
*/
|
|
424
|
+
private static getEngine;
|
|
358
425
|
/**
|
|
359
426
|
* The main route handler - REQUIRED!
|
|
360
427
|
* TypeScript will enforce this is implemented.
|
|
@@ -394,6 +461,45 @@ export declare abstract class Route<TContext = Context, TDeps = any> {
|
|
|
394
461
|
* ```
|
|
395
462
|
*/
|
|
396
463
|
protected fail(ctx: TContext, status: number, message: string, data?: any): Response;
|
|
464
|
+
/**
|
|
465
|
+
* Render a file template with data injection
|
|
466
|
+
* Supports multiple template engines via plugins or simple placeholder syntax by default
|
|
467
|
+
* @param filePath - Path to the template file (relative to project root or absolute)
|
|
468
|
+
* @param data - Data object to inject into template
|
|
469
|
+
* @param options - Render options (engine, status, headers)
|
|
470
|
+
* @returns Response object with rendered HTML/text
|
|
471
|
+
*
|
|
472
|
+
* @example
|
|
473
|
+
* ```typescript
|
|
474
|
+
* // Simple placeholder (default): {{ variableName }}
|
|
475
|
+
* return this.render('./views/welcome.html', { name: 'John' });
|
|
476
|
+
*
|
|
477
|
+
* // With Handlebars (auto-detect from .hbs extension)
|
|
478
|
+
* return this.render('./views/profile.hbs', { user });
|
|
479
|
+
*
|
|
480
|
+
* // Force specific engine
|
|
481
|
+
* return this.render('./views/page.html', { data }, { engine: 'ejs' });
|
|
482
|
+
*
|
|
483
|
+
* // With custom status and headers
|
|
484
|
+
* return this.render('./views/error.html', { message }, {
|
|
485
|
+
* status: 500,
|
|
486
|
+
* headers: { 'X-Custom': 'value' }
|
|
487
|
+
* });
|
|
488
|
+
* ```
|
|
489
|
+
*/
|
|
490
|
+
protected render(filePath: string, data?: Record<string, any>, options?: RenderOptions): Promise<Response>;
|
|
491
|
+
/**
|
|
492
|
+
* Inject data into template string
|
|
493
|
+
* Supports {{ variable }} and {{ object.property }} syntax
|
|
494
|
+
* Automatically JSON.stringify() objects and arrays for use in JavaScript
|
|
495
|
+
* @private
|
|
496
|
+
*/
|
|
497
|
+
private injectTemplateData;
|
|
498
|
+
/**
|
|
499
|
+
* Get content type from file extension
|
|
500
|
+
* @private
|
|
501
|
+
*/
|
|
502
|
+
private getContentTypeFromExtension;
|
|
397
503
|
/**
|
|
398
504
|
* HTTP method(s) this route handles - Optional
|
|
399
505
|
* When using file-based routing, you can also define method handlers (GET, POST, etc.)
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js
CHANGED
|
@@ -3,6 +3,39 @@
|
|
|
3
3
|
* Core type definitions for the Nexus Framework
|
|
4
4
|
* Provides type-safe interfaces for requests, responses, middleware, and routing
|
|
5
5
|
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
6
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
40
|
exports.Route = void 0;
|
|
8
41
|
exports.isRouteClass = isRouteClass;
|
|
@@ -46,6 +79,43 @@ exports.isRouteClass = isRouteClass;
|
|
|
46
79
|
*/
|
|
47
80
|
class Route {
|
|
48
81
|
pathName;
|
|
82
|
+
/**
|
|
83
|
+
* Template engines registry (static, shared across all routes)
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
static templateEngines = new Map();
|
|
87
|
+
/**
|
|
88
|
+
* Register a custom template engine
|
|
89
|
+
* @param engine - Template engine implementation
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* import Handlebars from 'handlebars';
|
|
94
|
+
*
|
|
95
|
+
* Route.registerEngine({
|
|
96
|
+
* name: 'handlebars',
|
|
97
|
+
* extensions: ['.hbs', '.handlebars'],
|
|
98
|
+
* render: (template, data) => {
|
|
99
|
+
* const compiled = Handlebars.compile(template);
|
|
100
|
+
* return compiled(data);
|
|
101
|
+
* }
|
|
102
|
+
* });
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
static registerEngine(engine) {
|
|
106
|
+
Route.templateEngines.set(engine.name, engine);
|
|
107
|
+
// Also register by file extensions for auto-detection
|
|
108
|
+
for (const ext of engine.extensions) {
|
|
109
|
+
Route.templateEngines.set(ext, engine);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get registered template engine by name or extension
|
|
114
|
+
* @private
|
|
115
|
+
*/
|
|
116
|
+
static getEngine(nameOrExt) {
|
|
117
|
+
return Route.templateEngines.get(nameOrExt);
|
|
118
|
+
}
|
|
49
119
|
// ─────────────────────────────────────────────────────────────────────────
|
|
50
120
|
// Helper Methods for cleaner response handling
|
|
51
121
|
// ─────────────────────────────────────────────────────────────────────────
|
|
@@ -85,6 +155,122 @@ class Route {
|
|
|
85
155
|
.status(status)
|
|
86
156
|
.json({ success: false, message, ...(data !== undefined ? { data } : {}) });
|
|
87
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Render a file template with data injection
|
|
160
|
+
* Supports multiple template engines via plugins or simple placeholder syntax by default
|
|
161
|
+
* @param filePath - Path to the template file (relative to project root or absolute)
|
|
162
|
+
* @param data - Data object to inject into template
|
|
163
|
+
* @param options - Render options (engine, status, headers)
|
|
164
|
+
* @returns Response object with rendered HTML/text
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* // Simple placeholder (default): {{ variableName }}
|
|
169
|
+
* return this.render('./views/welcome.html', { name: 'John' });
|
|
170
|
+
*
|
|
171
|
+
* // With Handlebars (auto-detect from .hbs extension)
|
|
172
|
+
* return this.render('./views/profile.hbs', { user });
|
|
173
|
+
*
|
|
174
|
+
* // Force specific engine
|
|
175
|
+
* return this.render('./views/page.html', { data }, { engine: 'ejs' });
|
|
176
|
+
*
|
|
177
|
+
* // With custom status and headers
|
|
178
|
+
* return this.render('./views/error.html', { message }, {
|
|
179
|
+
* status: 500,
|
|
180
|
+
* headers: { 'X-Custom': 'value' }
|
|
181
|
+
* });
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
async render(filePath, data, options) {
|
|
185
|
+
const fs = await Promise.resolve().then(() => __importStar(require('fs')));
|
|
186
|
+
const path = await Promise.resolve().then(() => __importStar(require('path')));
|
|
187
|
+
// Resolve file path (support both relative and absolute paths)
|
|
188
|
+
const resolvedPath = path.isAbsolute(filePath)
|
|
189
|
+
? filePath
|
|
190
|
+
: path.resolve(process.cwd(), filePath);
|
|
191
|
+
// Check if file exists
|
|
192
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
193
|
+
throw new Error(`Template file not found: ${filePath}`);
|
|
194
|
+
}
|
|
195
|
+
// Read file content
|
|
196
|
+
let content = fs.readFileSync(resolvedPath, 'utf-8');
|
|
197
|
+
// Determine which engine to use
|
|
198
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
199
|
+
let engine;
|
|
200
|
+
if (options?.engine) {
|
|
201
|
+
// Explicit engine specified
|
|
202
|
+
engine = Route.getEngine(options.engine);
|
|
203
|
+
if (!engine) {
|
|
204
|
+
throw new Error(`Template engine '${options.engine}' not registered. ` +
|
|
205
|
+
`Register it using Route.registerEngine()`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
// Auto-detect from file extension
|
|
210
|
+
engine = Route.getEngine(ext);
|
|
211
|
+
}
|
|
212
|
+
// Render with appropriate engine
|
|
213
|
+
if (engine) {
|
|
214
|
+
// Use registered template engine
|
|
215
|
+
content = await engine.render(content, data || {});
|
|
216
|
+
}
|
|
217
|
+
else if (data && Object.keys(data).length > 0) {
|
|
218
|
+
// Fallback to simple placeholder engine (default)
|
|
219
|
+
content = this.injectTemplateData(content, data);
|
|
220
|
+
}
|
|
221
|
+
// Determine content type from file extension
|
|
222
|
+
const contentType = this.getContentTypeFromExtension(ext);
|
|
223
|
+
// Build response headers
|
|
224
|
+
const headers = {
|
|
225
|
+
'Content-Type': contentType,
|
|
226
|
+
...(options?.headers || {})
|
|
227
|
+
};
|
|
228
|
+
return {
|
|
229
|
+
statusCode: options?.status || 200,
|
|
230
|
+
headers,
|
|
231
|
+
body: content
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Inject data into template string
|
|
236
|
+
* Supports {{ variable }} and {{ object.property }} syntax
|
|
237
|
+
* Automatically JSON.stringify() objects and arrays for use in JavaScript
|
|
238
|
+
* @private
|
|
239
|
+
*/
|
|
240
|
+
injectTemplateData(template, data) {
|
|
241
|
+
return template.replace(/\{\{\s*([\w.]+)\s*\}\}/g, (match, key) => {
|
|
242
|
+
// Support nested properties: user.name, user.email, etc.
|
|
243
|
+
const value = key.split('.').reduce((obj, prop) => {
|
|
244
|
+
return obj && obj[prop] !== undefined ? obj[prop] : '';
|
|
245
|
+
}, data);
|
|
246
|
+
if (value === undefined || value === null) {
|
|
247
|
+
return '';
|
|
248
|
+
}
|
|
249
|
+
// If value is object or array, JSON.stringify it for JavaScript usage
|
|
250
|
+
if (typeof value === 'object') {
|
|
251
|
+
return JSON.stringify(value);
|
|
252
|
+
}
|
|
253
|
+
// Primitive values: convert to string
|
|
254
|
+
return String(value);
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get content type from file extension
|
|
259
|
+
* @private
|
|
260
|
+
*/
|
|
261
|
+
getContentTypeFromExtension(ext) {
|
|
262
|
+
const mimeTypes = {
|
|
263
|
+
'.html': 'text/html; charset=utf-8',
|
|
264
|
+
'.htm': 'text/html; charset=utf-8',
|
|
265
|
+
'.xml': 'application/xml; charset=utf-8',
|
|
266
|
+
'.txt': 'text/plain; charset=utf-8',
|
|
267
|
+
'.css': 'text/css; charset=utf-8',
|
|
268
|
+
'.js': 'application/javascript; charset=utf-8',
|
|
269
|
+
'.json': 'application/json; charset=utf-8',
|
|
270
|
+
'.svg': 'image/svg+xml',
|
|
271
|
+
};
|
|
272
|
+
return mimeTypes[ext] || 'text/plain; charset=utf-8';
|
|
273
|
+
}
|
|
88
274
|
/**
|
|
89
275
|
* HTTP method(s) this route handles - Optional
|
|
90
276
|
* When using file-based routing, you can also define method handlers (GET, POST, etc.)
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|