@spinajs/http 2.0.474 → 2.0.475
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/lib/cjs/cache.d.ts +9 -10
- package/lib/cjs/cache.d.ts.map +1 -1
- package/lib/cjs/cache.js +41 -86
- package/lib/cjs/cache.js.map +1 -1
- package/lib/cjs/controllers.d.ts +3 -33
- package/lib/cjs/controllers.d.ts.map +1 -1
- package/lib/cjs/controllers.js +70 -97
- package/lib/cjs/controllers.js.map +1 -1
- package/lib/cjs/decorators.d.ts.map +1 -1
- package/lib/cjs/decorators.js +0 -55
- package/lib/cjs/decorators.js.map +1 -1
- package/lib/cjs/index.d.ts +0 -7
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +0 -7
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +1 -27
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/server.d.ts +0 -7
- package/lib/cjs/server.d.ts.map +1 -1
- package/lib/cjs/server.js +24 -9
- package/lib/cjs/server.js.map +1 -1
- package/lib/mjs/cache.d.ts +9 -10
- package/lib/mjs/cache.d.ts.map +1 -1
- package/lib/mjs/cache.js +41 -86
- package/lib/mjs/cache.js.map +1 -1
- package/lib/mjs/controllers.d.ts +3 -33
- package/lib/mjs/controllers.d.ts.map +1 -1
- package/lib/mjs/controllers.js +39 -99
- package/lib/mjs/controllers.js.map +1 -1
- package/lib/mjs/decorators.d.ts.map +1 -1
- package/lib/mjs/decorators.js +0 -55
- package/lib/mjs/decorators.js.map +1 -1
- package/lib/mjs/index.d.ts +0 -7
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +0 -7
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +1 -27
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/server.d.ts +0 -7
- package/lib/mjs/server.d.ts.map +1 -1
- package/lib/mjs/server.js +24 -9
- package/lib/mjs/server.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/lib/cjs/middlewares/AccessLog.d.ts +0 -23
- package/lib/cjs/middlewares/AccessLog.d.ts.map +0 -1
- package/lib/cjs/middlewares/AccessLog.js +0 -73
- package/lib/cjs/middlewares/AccessLog.js.map +0 -1
- package/lib/cjs/middlewares/Compression.d.ts +0 -21
- package/lib/cjs/middlewares/Compression.d.ts.map +0 -1
- package/lib/cjs/middlewares/Compression.js +0 -62
- package/lib/cjs/middlewares/Compression.js.map +0 -1
- package/lib/cjs/middlewares/Cors.d.ts +0 -25
- package/lib/cjs/middlewares/Cors.d.ts.map +0 -1
- package/lib/cjs/middlewares/Cors.js +0 -81
- package/lib/cjs/middlewares/Cors.js.map +0 -1
- package/lib/cjs/middlewares/ErrorHandler.d.ts +0 -17
- package/lib/cjs/middlewares/ErrorHandler.d.ts.map +0 -1
- package/lib/cjs/middlewares/ErrorHandler.js +0 -42
- package/lib/cjs/middlewares/ErrorHandler.js.map +0 -1
- package/lib/cjs/middlewares/NotFound.d.ts +0 -18
- package/lib/cjs/middlewares/NotFound.d.ts.map +0 -1
- package/lib/cjs/middlewares/NotFound.js +0 -48
- package/lib/cjs/middlewares/NotFound.js.map +0 -1
- package/lib/cjs/middlewares/ServerTiming.d.ts +0 -25
- package/lib/cjs/middlewares/ServerTiming.d.ts.map +0 -1
- package/lib/cjs/middlewares/ServerTiming.js +0 -78
- package/lib/cjs/middlewares/ServerTiming.js.map +0 -1
- package/lib/cjs/middlewares/SlowRequestWarning.d.ts +0 -20
- package/lib/cjs/middlewares/SlowRequestWarning.d.ts.map +0 -1
- package/lib/cjs/middlewares/SlowRequestWarning.js +0 -74
- package/lib/cjs/middlewares/SlowRequestWarning.js.map +0 -1
- package/lib/mjs/middlewares/AccessLog.d.ts +0 -23
- package/lib/mjs/middlewares/AccessLog.d.ts.map +0 -1
- package/lib/mjs/middlewares/AccessLog.js +0 -70
- package/lib/mjs/middlewares/AccessLog.js.map +0 -1
- package/lib/mjs/middlewares/Compression.d.ts +0 -21
- package/lib/mjs/middlewares/Compression.d.ts.map +0 -1
- package/lib/mjs/middlewares/Compression.js +0 -56
- package/lib/mjs/middlewares/Compression.js.map +0 -1
- package/lib/mjs/middlewares/Cors.d.ts +0 -25
- package/lib/mjs/middlewares/Cors.d.ts.map +0 -1
- package/lib/mjs/middlewares/Cors.js +0 -75
- package/lib/mjs/middlewares/Cors.js.map +0 -1
- package/lib/mjs/middlewares/ErrorHandler.d.ts +0 -17
- package/lib/mjs/middlewares/ErrorHandler.d.ts.map +0 -1
- package/lib/mjs/middlewares/ErrorHandler.js +0 -39
- package/lib/mjs/middlewares/ErrorHandler.js.map +0 -1
- package/lib/mjs/middlewares/NotFound.d.ts +0 -18
- package/lib/mjs/middlewares/NotFound.d.ts.map +0 -1
- package/lib/mjs/middlewares/NotFound.js +0 -45
- package/lib/mjs/middlewares/NotFound.js.map +0 -1
- package/lib/mjs/middlewares/ServerTiming.d.ts +0 -25
- package/lib/mjs/middlewares/ServerTiming.d.ts.map +0 -1
- package/lib/mjs/middlewares/ServerTiming.js +0 -75
- package/lib/mjs/middlewares/ServerTiming.js.map +0 -1
- package/lib/mjs/middlewares/SlowRequestWarning.d.ts +0 -20
- package/lib/mjs/middlewares/SlowRequestWarning.d.ts.map +0 -1
- package/lib/mjs/middlewares/SlowRequestWarning.js +0 -71
- package/lib/mjs/middlewares/SlowRequestWarning.js.map +0 -1
package/lib/cjs/cache.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export interface IParamDoc {
|
|
|
10
10
|
}
|
|
11
11
|
export interface IResponseDoc {
|
|
12
12
|
description: string;
|
|
13
|
+
/** Optional `{type}` annotation, e.g. `@response 400 {string} message` */
|
|
14
|
+
type?: string;
|
|
13
15
|
}
|
|
14
16
|
export interface IExampleDoc {
|
|
15
17
|
name?: string;
|
|
@@ -83,15 +85,6 @@ export declare class DefaultControllerCache extends AsyncService {
|
|
|
83
85
|
resolve(): Promise<void>;
|
|
84
86
|
/** Returns parameter-name map used for route argument binding. */
|
|
85
87
|
getCache(controller: ClassInfo<BaseController>): Promise<Record<string, string[]>>;
|
|
86
|
-
/** Whether `file` points at a real on-disk source we can parse. */
|
|
87
|
-
private isResolvableSource;
|
|
88
|
-
/**
|
|
89
|
-
* Fallback: derive route method parameter names by parsing each method's
|
|
90
|
-
* Function.toString() output. Loses JSDoc documentation (no @param tags
|
|
91
|
-
* etc.) but keeps argument binding working for DI-registered controllers
|
|
92
|
-
* that have no source file on disk.
|
|
93
|
-
*/
|
|
94
|
-
private extractParametersAtRuntime;
|
|
95
88
|
/** Returns the JSDoc / TypeScript-annotation documentation for a controller. */
|
|
96
89
|
getDocumentation(controller: ClassInfo<BaseController>): Promise<IControllerDocumentation>;
|
|
97
90
|
/**
|
|
@@ -103,7 +96,8 @@ export declare class DefaultControllerCache extends AsyncService {
|
|
|
103
96
|
* .d.ts which only emits type-referenced ones) and resolve the matching
|
|
104
97
|
* module specifier against the controller's directory or node_modules.
|
|
105
98
|
*
|
|
106
|
-
*
|
|
99
|
+
* JSDoc is extracted per class — several policies may share one file, so the
|
|
100
|
+
* file is parsed once per class. Policy doc volume is small and the cost is
|
|
107
101
|
* dominated by ts.createProgram which we already pay for the controller.
|
|
108
102
|
*/
|
|
109
103
|
getPolicyDocumentation(controller: ClassInfo<BaseController>, policyNames: string[]): Promise<Record<string, IPolicyDoc>>;
|
|
@@ -151,5 +145,10 @@ export declare class DefaultControllerCache extends AsyncService {
|
|
|
151
145
|
private getTagComment;
|
|
152
146
|
private parseExample;
|
|
153
147
|
private inferSchemaFromTypeNode;
|
|
148
|
+
/**
|
|
149
|
+
* Schema for a named type: unwrap wrappers and `Array<T>`, otherwise tag it as a named object.
|
|
150
|
+
* The parser only names the type; http-swagger's providers expand it later.
|
|
151
|
+
*/
|
|
152
|
+
private schemaFromNamedType;
|
|
154
153
|
}
|
|
155
154
|
//# sourceMappingURL=cache.d.ts.map
|
package/lib/cjs/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B,OAAO,EAAE,YAAY,EAAc,SAAS,EAAa,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,EAAE,IAAI,GAAG,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAM3C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/cache.js
CHANGED
|
@@ -21,6 +21,13 @@ const di_1 = require("@spinajs/di");
|
|
|
21
21
|
const fs_2 = require("@spinajs/fs");
|
|
22
22
|
const log_1 = require("@spinajs/log");
|
|
23
23
|
// ---------------------------------------------------------------------------
|
|
24
|
+
/** Wrapper types unwrapped to their first type argument (`Promise<T>`, `Ok<T>`, `ModelData<T>`, …). */
|
|
25
|
+
const TRANSPARENT_WRAPPERS = new Set([
|
|
26
|
+
'Promise', 'Ok', 'Json', 'Created', 'BadRequest', 'NotFound',
|
|
27
|
+
'ServerError', 'Unauthorized', 'Forbidden', 'Conflict', 'NoContent',
|
|
28
|
+
'ValidationError', 'NotAllowed', 'EntityTooLarge',
|
|
29
|
+
'ModelDataWithRelationData', 'ModelData',
|
|
30
|
+
]);
|
|
24
31
|
let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncService {
|
|
25
32
|
constructor() {
|
|
26
33
|
super(...arguments);
|
|
@@ -52,13 +59,6 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
|
|
|
52
59
|
}
|
|
53
60
|
/** Returns parameter-name map used for route argument binding. */
|
|
54
61
|
async getCache(controller) {
|
|
55
|
-
// Sentinel values like `<di>` are set by Controllers.resolve() / add() for
|
|
56
|
-
// controllers registered through DI rather than a file scan. There's no
|
|
57
|
-
// on-disk source to parse, so fall back to a runtime extraction of
|
|
58
|
-
// parameter names from each method's Function.toString().
|
|
59
|
-
if (!this.isResolvableSource(controller.file)) {
|
|
60
|
-
return this.extractParametersAtRuntime(controller);
|
|
61
|
-
}
|
|
62
62
|
const file = (0, path_1.resolve)(controller.file.replace('.js', '.d.ts'));
|
|
63
63
|
const hash = await this.Hasher.hash(file);
|
|
64
64
|
const docHash = `doc_${hash}`;
|
|
@@ -75,40 +75,8 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
|
|
|
75
75
|
}
|
|
76
76
|
return this.CacheFS.read(hash).then((x) => JSON.parse(x.toString()));
|
|
77
77
|
}
|
|
78
|
-
/** Whether `file` points at a real on-disk source we can parse. */
|
|
79
|
-
isResolvableSource(file) {
|
|
80
|
-
if (!file)
|
|
81
|
-
return false;
|
|
82
|
-
// Bracketed sentinels (e.g. `<di>`, `<dynamic>`) are used by Controllers
|
|
83
|
-
// for entries that were never loaded from a file.
|
|
84
|
-
return !(file.startsWith('<') && file.endsWith('>'));
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Fallback: derive route method parameter names by parsing each method's
|
|
88
|
-
* Function.toString() output. Loses JSDoc documentation (no @param tags
|
|
89
|
-
* etc.) but keeps argument binding working for DI-registered controllers
|
|
90
|
-
* that have no source file on disk.
|
|
91
|
-
*/
|
|
92
|
-
extractParametersAtRuntime(controller) {
|
|
93
|
-
const parameters = {};
|
|
94
|
-
const instance = controller.instance;
|
|
95
|
-
if (!instance || !instance.Descriptor)
|
|
96
|
-
return parameters;
|
|
97
|
-
for (const [methodName] of instance.Descriptor.Routes) {
|
|
98
|
-
const fn = instance[methodName];
|
|
99
|
-
if (typeof fn !== 'function')
|
|
100
|
-
continue;
|
|
101
|
-
parameters[methodName] = parseFnParamNames(fn);
|
|
102
|
-
}
|
|
103
|
-
return parameters;
|
|
104
|
-
}
|
|
105
78
|
/** Returns the JSDoc / TypeScript-annotation documentation for a controller. */
|
|
106
79
|
async getDocumentation(controller) {
|
|
107
|
-
// No source file → no JSDoc to extract. Return an empty shell so callers
|
|
108
|
-
// (e.g. http-swagger) gracefully skip the controller instead of throwing.
|
|
109
|
-
if (!this.isResolvableSource(controller.file)) {
|
|
110
|
-
return { className: controller.name, methods: {} };
|
|
111
|
-
}
|
|
112
80
|
const file = (0, path_1.resolve)(controller.file.replace('.js', '.d.ts'));
|
|
113
81
|
const hash = await this.Hasher.hash(file);
|
|
114
82
|
const docHash = `doc_${hash}`;
|
|
@@ -126,7 +94,8 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
|
|
|
126
94
|
* .d.ts which only emits type-referenced ones) and resolve the matching
|
|
127
95
|
* module specifier against the controller's directory or node_modules.
|
|
128
96
|
*
|
|
129
|
-
*
|
|
97
|
+
* JSDoc is extracted per class — several policies may share one file, so the
|
|
98
|
+
* file is parsed once per class. Policy doc volume is small and the cost is
|
|
130
99
|
* dominated by ts.createProgram which we already pay for the controller.
|
|
131
100
|
*/
|
|
132
101
|
async getPolicyDocumentation(controller, policyNames) {
|
|
@@ -137,7 +106,6 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
|
|
|
137
106
|
const importMap = this.extractImports(controllerJs);
|
|
138
107
|
if (importMap.size === 0)
|
|
139
108
|
return out;
|
|
140
|
-
const seenFiles = new Set();
|
|
141
109
|
for (const name of policyNames) {
|
|
142
110
|
if (out[name])
|
|
143
111
|
continue;
|
|
@@ -145,12 +113,8 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
|
|
|
145
113
|
if (!moduleSpec)
|
|
146
114
|
continue;
|
|
147
115
|
const policyFile = this.resolvePolicyFile(controllerJs, moduleSpec);
|
|
148
|
-
if (!policyFile
|
|
149
|
-
if (policyFile)
|
|
150
|
-
out[name] = { file: policyFile };
|
|
116
|
+
if (!policyFile)
|
|
151
117
|
continue;
|
|
152
|
-
}
|
|
153
|
-
seenFiles.add(policyFile);
|
|
154
118
|
try {
|
|
155
119
|
const description = this.extractClassJsDoc(policyFile, name);
|
|
156
120
|
out[name] = { file: policyFile, description };
|
|
@@ -261,8 +225,15 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
|
|
|
261
225
|
const code = comment.substring(0, space).trim();
|
|
262
226
|
if (!/^\d+$/.test(code))
|
|
263
227
|
return;
|
|
264
|
-
|
|
265
|
-
|
|
228
|
+
let desc = comment.substring(space + 1).trim();
|
|
229
|
+
// `@response 400 {string} message` — split the optional type annotation off
|
|
230
|
+
let type;
|
|
231
|
+
const typeMatch = /^\{([^}]+)\}\s*/.exec(desc);
|
|
232
|
+
if (typeMatch) {
|
|
233
|
+
type = typeMatch[1].trim();
|
|
234
|
+
desc = desc.substring(typeMatch[0].length).trim();
|
|
235
|
+
}
|
|
236
|
+
(ctx.doc.responses ??= {})[code] = { description: desc, ...(type ? { type } : {}) };
|
|
266
237
|
}
|
|
267
238
|
extractExampleTag(tag, ctx) {
|
|
268
239
|
const ex = this.parseExample(tag);
|
|
@@ -474,28 +445,10 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
|
|
|
474
445
|
return { type: 'array', items: this.inferSchemaFromTypeNode(typeNode.elementType) };
|
|
475
446
|
}
|
|
476
447
|
if (typescript_1.default.isTypeReferenceNode(typeNode)) {
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
const TRANSPARENT_WRAPPERS = new Set([
|
|
482
|
-
'Promise', 'Ok', 'Json', 'Created', 'BadRequest', 'NotFound',
|
|
483
|
-
'ServerError', 'Unauthorized', 'Forbidden', 'Conflict', 'NoContent',
|
|
484
|
-
'ValidationError', 'NotAllowed', 'EntityTooLarge',
|
|
485
|
-
]);
|
|
486
|
-
if (TRANSPARENT_WRAPPERS.has(name) && typeNode.typeArguments?.length) {
|
|
487
|
-
return this.inferSchemaFromTypeNode(typeNode.typeArguments[0]);
|
|
488
|
-
}
|
|
489
|
-
if (name === 'Array' && typeNode.typeArguments?.length) {
|
|
490
|
-
return { type: 'array', items: this.inferSchemaFromTypeNode(typeNode.typeArguments[0]) };
|
|
491
|
-
}
|
|
492
|
-
switch (name) {
|
|
493
|
-
case 'string': return { type: 'string' };
|
|
494
|
-
case 'number': return { type: 'number' };
|
|
495
|
-
case 'boolean': return { type: 'boolean' };
|
|
496
|
-
// Avoid generating $ref to schemas that aren't registered in components
|
|
497
|
-
default: return { type: 'object', description: name };
|
|
498
|
-
}
|
|
448
|
+
return this.schemaFromNamedType(entityNameRight(typeNode.typeName), typeNode.typeArguments);
|
|
449
|
+
}
|
|
450
|
+
if (typescript_1.default.isImportTypeNode(typeNode) && typeNode.qualifier) {
|
|
451
|
+
return this.schemaFromNamedType(entityNameRight(typeNode.qualifier), typeNode.typeArguments);
|
|
499
452
|
}
|
|
500
453
|
if (typescript_1.default.isTypeLiteralNode(typeNode)) {
|
|
501
454
|
const properties = {};
|
|
@@ -515,11 +468,25 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
|
|
|
515
468
|
}
|
|
516
469
|
if (typescript_1.default.isUnionTypeNode(typeNode)) {
|
|
517
470
|
const meaningful = typeNode.types.filter((t) => t.kind !== typescript_1.default.SyntaxKind.NullKeyword && t.kind !== typescript_1.default.SyntaxKind.UndefinedKeyword);
|
|
518
|
-
if (meaningful.length === 1)
|
|
471
|
+
if (meaningful.length === 1) {
|
|
519
472
|
return this.inferSchemaFromTypeNode(meaningful[0]);
|
|
473
|
+
}
|
|
520
474
|
}
|
|
521
475
|
return { type: 'object' };
|
|
522
476
|
}
|
|
477
|
+
/**
|
|
478
|
+
* Schema for a named type: unwrap wrappers and `Array<T>`, otherwise tag it as a named object.
|
|
479
|
+
* The parser only names the type; http-swagger's providers expand it later.
|
|
480
|
+
*/
|
|
481
|
+
schemaFromNamedType(name, typeArguments) {
|
|
482
|
+
if (TRANSPARENT_WRAPPERS.has(name) && typeArguments?.length) {
|
|
483
|
+
return this.inferSchemaFromTypeNode(typeArguments[0]);
|
|
484
|
+
}
|
|
485
|
+
if (name === 'Array' && typeArguments?.length) {
|
|
486
|
+
return { type: 'array', items: this.inferSchemaFromTypeNode(typeArguments[0]) };
|
|
487
|
+
}
|
|
488
|
+
return { type: 'object', description: name };
|
|
489
|
+
}
|
|
523
490
|
};
|
|
524
491
|
exports.DefaultControllerCache = DefaultControllerCache;
|
|
525
492
|
__decorate([
|
|
@@ -537,20 +504,8 @@ __decorate([
|
|
|
537
504
|
exports.DefaultControllerCache = DefaultControllerCache = __decorate([
|
|
538
505
|
(0, di_1.Singleton)()
|
|
539
506
|
], DefaultControllerCache);
|
|
540
|
-
/**
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
* Stripped of default values and TypeScript type annotations.
|
|
544
|
-
*/
|
|
545
|
-
function parseFnParamNames(fn) {
|
|
546
|
-
const src = Function.prototype.toString.call(fn);
|
|
547
|
-
const match = src.match(/^[^(]*\(([\s\S]*?)\)/);
|
|
548
|
-
if (!match)
|
|
549
|
-
return [];
|
|
550
|
-
return match[1]
|
|
551
|
-
.split(',')
|
|
552
|
-
.map((p) => p.trim())
|
|
553
|
-
.filter(Boolean)
|
|
554
|
-
.map((p) => p.replace(/^\.\.\./, '').split(/[=:]/)[0].trim());
|
|
507
|
+
/** Rightmost identifier of an entity name. */
|
|
508
|
+
function entityNameRight(name) {
|
|
509
|
+
return typescript_1.default.isIdentifier(name) ? name.text : name.right.text;
|
|
555
510
|
}
|
|
556
511
|
//# sourceMappingURL=cache.js.map
|
package/lib/cjs/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/controllers.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
2
|
import Express from 'express';
|
|
3
|
-
import { AsyncService, IContainer, ClassInfo
|
|
3
|
+
import { AsyncService, IContainer, ClassInfo } from '@spinajs/di';
|
|
4
4
|
import { Log } from '@spinajs/log';
|
|
5
5
|
import { DataValidator } from '@spinajs/validation';
|
|
6
6
|
import { Configuration } from '@spinajs/configuration';
|
|
@@ -36,44 +36,14 @@ export declare abstract class BaseController extends AsyncService implements ICo
|
|
|
36
36
|
}
|
|
37
37
|
export declare class Controllers extends AsyncService {
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
40
|
-
* registered as `BaseController` in DI during `resolve()`, then every
|
|
41
|
-
* controller — file-scanned and bootstrapper-registered alike — is
|
|
42
|
-
* resolved through `Array.ofType(BaseController)`.
|
|
39
|
+
* Loaded controllers
|
|
43
40
|
*/
|
|
44
41
|
Controllers: Promise<Array<ClassInfo<BaseController>>>;
|
|
45
42
|
protected Log: Log;
|
|
46
43
|
protected Container: IContainer;
|
|
47
44
|
protected Server: HttpServer;
|
|
48
45
|
protected ControllersCache: DefaultControllerCache;
|
|
49
|
-
|
|
50
|
-
* Single Express router that all controllers' routers are mounted onto.
|
|
51
|
-
* It occupies one fixed position in the parent Express stack, so
|
|
52
|
-
* dynamically-added controllers (via {@link add}) land at the right place
|
|
53
|
-
* automatically — Express evaluates sub-router stacks lazily on each
|
|
54
|
-
* request. NotFound / Error middleware live AFTER this router via the
|
|
55
|
-
* standard ServerMiddleware.after() lifecycle.
|
|
56
|
-
*/
|
|
57
|
-
protected ControllersRouter: Express.Router;
|
|
58
|
-
/**
|
|
59
|
-
* Tracks which controller types have already been route-registered so
|
|
60
|
-
* {@link add} is idempotent.
|
|
61
|
-
*/
|
|
62
|
-
protected RegisteredTypes: Set<Class<BaseController>>;
|
|
63
|
-
/**
|
|
64
|
-
* Dynamically register a controller after startup. Equivalent to having
|
|
65
|
-
* declared it via @Injectable / file-scan / bootstrapper registration
|
|
66
|
-
* before `resolve()` ran, but usable at any point.
|
|
67
|
-
*
|
|
68
|
-
* Registers the type as BaseController (idempotent), resolves the
|
|
69
|
-
* singleton instance, runs the per-controller cache + descriptor setup,
|
|
70
|
-
* and mounts the controller's Router on the shared ControllersRouter.
|
|
71
|
-
*
|
|
72
|
-
* No Express stack mutation needed: the shared router was mounted once
|
|
73
|
-
* during resolve() and lives at a fixed slot; the new controller's router
|
|
74
|
-
* just becomes another entry in the shared router's internal stack.
|
|
75
|
-
*/
|
|
76
|
-
add(type: Class<BaseController>): Promise<void>;
|
|
46
|
+
registerFromFile(file: string): Promise<void>;
|
|
77
47
|
register(controller: ClassInfo<BaseController>): Promise<void>;
|
|
78
48
|
resolve(): Promise<void>;
|
|
79
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../src/controllers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../src/controllers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAKrD,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAkB,SAAS,EAAa,MAAM,aAAa,CAAC;AAG7F,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAiC,WAAW,EAAE,qBAAqB,EAAgG,0BAA0B,EAAW,MAAM,iBAAiB,CAAC;AAGvO,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAMpD,8BAAsB,cAAe,SAAQ,YAAa,YAAW,WAAW;IAC9E;;OAEG;IACH,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEtB,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC,MAAM,CAAC;IAGnC,SAAS,CAAC,UAAU,EAAG,UAAU,CAAC;IAGlC,SAAS,CAAC,UAAU,EAAG,aAAa,CAAC;IAGrC,SAAS,CAAC,IAAI,EAAG,GAAG,CAAC;IAGrB,SAAS,CAAC,mBAAmB,EAAG,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;IAG9E,SAAS,CAAC,IAAI,EAAG,aAAa,CAAC;IAI/B;;OAEG;IACH,IAAW,MAAM,IAAI,OAAO,CAAC,MAAM,CAElC;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,qBAAqB,CAE7C;IAED;;;;OAIG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAEY,OAAO;CAqNrB;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C;;OAEG;IAEI,WAAW,EAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAG/D,SAAS,CAAC,GAAG,EAAG,GAAG,CAAC;IAGpB,SAAS,CAAC,SAAS,EAAG,UAAU,CAAC;IAGjC,SAAS,CAAC,MAAM,EAAG,UAAU,CAAC;IAG9B,SAAS,CAAC,gBAAgB,EAAG,sBAAsB,CAAC;IAEvC,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAuC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC;IAqC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CActC"}
|
package/lib/cjs/controllers.js
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
19
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
20
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
21
|
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;
|
|
6
22
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
23
|
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
8
41
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
42
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
43
|
};
|
|
@@ -15,6 +48,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
48
|
exports.Controllers = exports.BaseController = void 0;
|
|
16
49
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
17
50
|
const types_1 = require("node:util/types");
|
|
51
|
+
const node_path_1 = require("node:path");
|
|
52
|
+
const fs = __importStar(require("node:fs"));
|
|
18
53
|
const express_1 = __importDefault(require("express"));
|
|
19
54
|
const lodash_1 = __importDefault(require("lodash"));
|
|
20
55
|
const di_1 = require("@spinajs/di");
|
|
@@ -257,49 +292,39 @@ __decorate([
|
|
|
257
292
|
__metadata("design:type", configuration_1.Configuration)
|
|
258
293
|
], BaseController.prototype, "_cfg", void 0);
|
|
259
294
|
class Controllers extends di_1.AsyncService {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
* Tracks which controller types have already been route-registered so
|
|
264
|
-
* {@link add} is idempotent.
|
|
265
|
-
*/
|
|
266
|
-
this.RegisteredTypes = new Set();
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Dynamically register a controller after startup. Equivalent to having
|
|
270
|
-
* declared it via @Injectable / file-scan / bootstrapper registration
|
|
271
|
-
* before `resolve()` ran, but usable at any point.
|
|
272
|
-
*
|
|
273
|
-
* Registers the type as BaseController (idempotent), resolves the
|
|
274
|
-
* singleton instance, runs the per-controller cache + descriptor setup,
|
|
275
|
-
* and mounts the controller's Router on the shared ControllersRouter.
|
|
276
|
-
*
|
|
277
|
-
* No Express stack mutation needed: the shared router was mounted once
|
|
278
|
-
* during resolve() and lives at a fixed slot; the new controller's router
|
|
279
|
-
* just becomes another entry in the shared router's internal stack.
|
|
280
|
-
*/
|
|
281
|
-
async add(type) {
|
|
282
|
-
if (this.RegisteredTypes.has(type)) {
|
|
283
|
-
this.Log.trace(`Controller ${type.name} already registered, skipping`);
|
|
284
|
-
return;
|
|
295
|
+
async registerFromFile(file) {
|
|
296
|
+
if (!fs.existsSync(file)) {
|
|
297
|
+
throw new exceptions_1.IOFail(`Controller file at path ${file} not found`);
|
|
285
298
|
}
|
|
286
|
-
di_1.DI.
|
|
287
|
-
const
|
|
299
|
+
const types = await di_1.DI.__spinajs_require__(file.replace('.js', '.d.ts'));
|
|
300
|
+
const typeName = (0, node_path_1.basename)((0, node_path_1.basename)(file, '.js'), '.ts');
|
|
301
|
+
const type = types[typeName];
|
|
302
|
+
const instance = await di_1.DI.resolve(type);
|
|
288
303
|
const ci = new di_1.ClassInfo();
|
|
289
|
-
ci.
|
|
290
|
-
ci.type = type;
|
|
304
|
+
ci.file = file.replace('.js', '.d.ts');
|
|
291
305
|
ci.instance = instance;
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
306
|
+
ci.name = typeName;
|
|
307
|
+
ci.type = type;
|
|
308
|
+
// ensure dynamically added controllers are registered before 404/error middleware
|
|
309
|
+
const expressRouter = this.Server.Express?._router;
|
|
310
|
+
const tail = [];
|
|
311
|
+
if (expressRouter?.stack?.length) {
|
|
312
|
+
const last = expressRouter.stack[expressRouter.stack.length - 1];
|
|
313
|
+
if (last?.handle?.length === 4) {
|
|
314
|
+
tail.unshift(expressRouter.stack.pop());
|
|
315
|
+
}
|
|
316
|
+
const last2 = expressRouter.stack[expressRouter.stack.length - 1];
|
|
317
|
+
if (last2?.handle?.length === 3) {
|
|
318
|
+
tail.unshift(expressRouter.stack.pop());
|
|
319
|
+
}
|
|
320
|
+
}
|
|
295
321
|
await this.register(ci);
|
|
322
|
+
if (tail.length && expressRouter?.stack) {
|
|
323
|
+
expressRouter.stack.push(...tail);
|
|
324
|
+
}
|
|
296
325
|
}
|
|
297
326
|
async register(controller) {
|
|
298
327
|
this.Log.trace(`Loading controller: ${controller.name}`);
|
|
299
|
-
if (controller.type && this.RegisteredTypes.has(controller.type)) {
|
|
300
|
-
this.Log.trace(`Controller ${controller.name} already registered, skipping`);
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
328
|
const parameters = await this.ControllersCache.getCache(controller);
|
|
304
329
|
if (!controller.instance) {
|
|
305
330
|
this.Log.warn(`Controller ${controller.name} in file ${controller.file} is not resolved. Make sure it is decorated with @injectable and has a public constructor without required parameters`);
|
|
@@ -327,76 +352,24 @@ class Controllers extends di_1.AsyncService {
|
|
|
327
352
|
this.Log.warn(`Controller ${controller.name} in file ${controller.file} has no router instance. Check if it extends BaseController and super.resolve() is called in resolve method`);
|
|
328
353
|
return;
|
|
329
354
|
}
|
|
330
|
-
this.
|
|
331
|
-
if (controller.type) {
|
|
332
|
-
this.RegisteredTypes.add(controller.type);
|
|
333
|
-
}
|
|
355
|
+
this.Server.use(controller.instance.Router);
|
|
334
356
|
}
|
|
335
357
|
}
|
|
336
358
|
async resolve() {
|
|
337
359
|
await super.resolve();
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
this.ControllersRouter = express_1.default.Router();
|
|
342
|
-
// Two registration paths converge here:
|
|
343
|
-
// 1. Directory-scanned controllers (existing behavior). @ListFromFiles
|
|
344
|
-
// hands us the class types; we register each as `BaseController` so
|
|
345
|
-
// they show up in the DI collection.
|
|
346
|
-
// 2. Bootstrapper-registered controllers. A package's Bootstrapper can
|
|
347
|
-
// conditionally call `DI.register(MyController).as(BaseController)`
|
|
348
|
-
// before this service resolves. Those classes are already in the
|
|
349
|
-
// collection by the time we get here.
|
|
350
|
-
// Resolving `Array.ofType(BaseController)` then instantiates everything
|
|
351
|
-
// in a single pass — file-scanned + bootstrap-registered, with class
|
|
352
|
-
// identity dedupe (multiple `as(BaseController)` calls for the same type
|
|
353
|
-
// resolve to one singleton).
|
|
354
|
-
const listed = await this.Controllers;
|
|
355
|
-
// Remember the original file path per type so the second loop can preserve
|
|
356
|
-
// it. Without this every controller would end up tagged `<di>`, breaking
|
|
357
|
-
// ControllersCache.getCache() which expects a real on-disk source file.
|
|
358
|
-
const fileByType = new Map();
|
|
359
|
-
for (const ci of lodash_1.default.uniqBy(listed, c => c.name)) {
|
|
360
|
-
if (!ci.type) {
|
|
361
|
-
this.Log.warn(`Controller ${ci.name} in file ${ci.file} has no type. Make sure it is decorated with @injectable and has a public constructor without required parameters`);
|
|
362
|
-
continue;
|
|
363
|
-
}
|
|
364
|
-
;
|
|
365
|
-
fileByType.set(ci.type, ci);
|
|
366
|
-
di_1.DI.register(ci.type).as(BaseController);
|
|
367
|
-
this.Log.trace(`Controller ${ci.name} from ${ci.file} registered as BaseController`);
|
|
368
|
-
}
|
|
369
|
-
const instances = (await di_1.DI.resolve(Array.ofType(BaseController)));
|
|
370
|
-
for (const instance of instances) {
|
|
371
|
-
const type = instance.constructor;
|
|
372
|
-
const originalCi = fileByType.get(type);
|
|
373
|
-
const ci = originalCi ?? Object.assign(new di_1.ClassInfo(), {
|
|
374
|
-
name: type.name,
|
|
375
|
-
type,
|
|
376
|
-
instance,
|
|
377
|
-
// For DI-registered controllers without a file scan entry, fall back
|
|
378
|
-
// to the source file captured at decoration time by `Controller()`.
|
|
379
|
-
// Only sentinel '<di>' if nothing was captured (abstract base, or no
|
|
380
|
-
// route decorators ran).
|
|
381
|
-
file: instance.Descriptor?.SourceFile ?? '<di>',
|
|
382
|
-
});
|
|
383
|
-
// The file-scanned entry has no instance (List, not Resolve) — patch it.
|
|
384
|
-
if (!ci.instance)
|
|
385
|
-
ci.instance = instance;
|
|
386
|
-
await this.register(ci);
|
|
360
|
+
const controllers = await this.Controllers;
|
|
361
|
+
for (const c of controllers) {
|
|
362
|
+
await this.register(c);
|
|
387
363
|
}
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
// ErrorHandlerMiddleware (ServerMiddleware impls), attached to the
|
|
393
|
-
// Express stack tail during HttpServer.start().
|
|
394
|
-
this.Server.use(this.ControllersRouter);
|
|
364
|
+
this.Server.use((req, _res, next) => {
|
|
365
|
+
next(new exceptions_1.ResourceNotFound(`Route not found: ${req.method} ${req.originalUrl}`));
|
|
366
|
+
});
|
|
367
|
+
this.Server.use((0, error_js_1.__handle_error__)()); // Global error handler
|
|
395
368
|
}
|
|
396
369
|
}
|
|
397
370
|
exports.Controllers = Controllers;
|
|
398
371
|
__decorate([
|
|
399
|
-
(0, reflection_1.
|
|
372
|
+
(0, reflection_1.ResolveFromFiles)('/**/!(*.d).{ts,js}', 'system.dirs.controllers'),
|
|
400
373
|
__metadata("design:type", Promise)
|
|
401
374
|
], Controllers.prototype, "Controllers", void 0);
|
|
402
375
|
__decorate([
|