@e22m4u/ts-rest-router 0.0.7 → 0.1.1
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/README-ru.md +114 -91
- package/README.md +106 -85
- package/dist/cjs/index.cjs +427 -123
- package/dist/esm/controller-registry.d.ts +53 -11
- package/dist/esm/controller-registry.js +242 -104
- package/dist/esm/debuggable-service.js +1 -1
- package/dist/esm/decorators/after/after-decorator.d.ts +9 -0
- package/dist/esm/decorators/after/after-decorator.js +22 -0
- package/dist/esm/decorators/after/after-decorator.spec.d.ts +1 -0
- package/dist/esm/decorators/after/after-decorator.spec.js +115 -0
- package/dist/esm/decorators/after/after-metadata.d.ts +13 -0
- package/dist/esm/decorators/after/after-metadata.js +5 -0
- package/dist/esm/decorators/after/after-reflector.d.ts +22 -0
- package/dist/esm/decorators/after/after-reflector.js +29 -0
- package/dist/esm/decorators/after/after-reflector.spec.d.ts +1 -0
- package/dist/esm/decorators/after/after-reflector.spec.js +102 -0
- package/dist/esm/decorators/after/index.d.ts +3 -0
- package/dist/esm/decorators/after/index.js +3 -0
- package/dist/esm/decorators/before/before-decorator.d.ts +9 -0
- package/dist/esm/decorators/before/before-decorator.js +22 -0
- package/dist/esm/decorators/before/before-decorator.spec.d.ts +1 -0
- package/dist/esm/decorators/before/before-decorator.spec.js +115 -0
- package/dist/esm/decorators/before/before-metadata.d.ts +13 -0
- package/dist/esm/decorators/before/before-metadata.js +5 -0
- package/dist/esm/decorators/before/before-reflector.d.ts +22 -0
- package/dist/esm/decorators/before/before-reflector.js +29 -0
- package/dist/esm/decorators/before/before-reflector.spec.d.ts +1 -0
- package/dist/esm/decorators/before/before-reflector.spec.js +102 -0
- package/dist/esm/decorators/before/index.d.ts +3 -0
- package/dist/esm/decorators/before/index.js +3 -0
- package/dist/esm/decorators/controller/controller-decorator.d.ts +2 -1
- package/dist/esm/decorators/controller/controller-decorator.js +26 -1
- package/dist/esm/decorators/controller/controller-decorator.spec.js +28 -0
- package/dist/esm/decorators/index.d.ts +2 -0
- package/dist/esm/decorators/index.js +2 -0
- package/dist/esm/decorators/request-data/request-data-decorator.d.ts +1 -1
- package/dist/esm/decorators/request-data/request-data-decorator.js +1 -1
- package/dist/esm/decorators/request-data/request-data-decorator.spec.js +5 -5
- package/dist/esm/utils/create-debugger.d.ts +35 -2
- package/dist/esm/utils/create-debugger.js +71 -5
- package/package.json +1 -1
- package/src/controller-registry.spec.ts +597 -275
- package/src/controller-registry.ts +263 -128
- package/src/debuggable-service.ts +1 -1
- package/src/decorators/after/after-decorator.spec.ts +92 -0
- package/src/decorators/after/after-decorator.ts +40 -0
- package/src/decorators/after/after-metadata.ts +17 -0
- package/src/decorators/after/after-reflector.spec.ts +107 -0
- package/src/decorators/after/after-reflector.ts +45 -0
- package/src/decorators/after/index.ts +3 -0
- package/src/decorators/before/before-decorator.spec.ts +92 -0
- package/src/decorators/before/before-decorator.ts +40 -0
- package/src/decorators/before/before-metadata.ts +17 -0
- package/src/decorators/before/before-reflector.spec.ts +111 -0
- package/src/decorators/before/before-reflector.ts +50 -0
- package/src/decorators/before/index.ts +3 -0
- package/src/decorators/controller/controller-decorator.spec.ts +22 -0
- package/src/decorators/controller/controller-decorator.ts +29 -1
- package/src/decorators/index.ts +2 -0
- package/src/decorators/request-data/request-data-decorator.spec.ts +5 -5
- package/src/decorators/request-data/request-data-decorator.ts +1 -1
- package/src/utils/create-debugger.ts +84 -7
package/dist/cjs/index.cjs
CHANGED
@@ -32,7 +32,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
32
32
|
var index_exports = {};
|
33
33
|
__export(index_exports, {
|
34
34
|
ACTIONS_METADATA_KEY: () => ACTIONS_METADATA_KEY,
|
35
|
+
AFTER_METADATA_KEY: () => AFTER_METADATA_KEY,
|
35
36
|
ActionReflector: () => ActionReflector,
|
37
|
+
AfterReflector: () => AfterReflector,
|
38
|
+
BEFORE_METADATA_KEY: () => BEFORE_METADATA_KEY,
|
39
|
+
BeforeReflector: () => BeforeReflector,
|
36
40
|
CONTROLLER_METADATA_KEY: () => CONTROLLER_METADATA_KEY,
|
37
41
|
ControllerReflector: () => ControllerReflector,
|
38
42
|
ControllerRegistry: () => ControllerRegistry,
|
@@ -44,8 +48,9 @@ __export(index_exports, {
|
|
44
48
|
RequestDataSource: () => RequestDataSource,
|
45
49
|
RestRouter: () => RestRouter,
|
46
50
|
action: () => action,
|
51
|
+
after: () => after,
|
52
|
+
before: () => before,
|
47
53
|
body: () => body,
|
48
|
-
bodyParam: () => bodyParam,
|
49
54
|
capitalize: () => capitalize,
|
50
55
|
controller: () => controller,
|
51
56
|
cookie: () => cookie,
|
@@ -53,6 +58,7 @@ __export(index_exports, {
|
|
53
58
|
createDebugger: () => createDebugger,
|
54
59
|
createError: () => createError,
|
55
60
|
del: () => del,
|
61
|
+
field: () => field,
|
56
62
|
get: () => get,
|
57
63
|
header: () => header,
|
58
64
|
headers: () => headers,
|
@@ -92,13 +98,38 @@ function toCamelCase(input) {
|
|
92
98
|
__name(toCamelCase, "toCamelCase");
|
93
99
|
|
94
100
|
// dist/esm/utils/create-debugger.js
|
101
|
+
var import_util = require("util");
|
95
102
|
var import_debug = __toESM(require("debug"), 1);
|
96
103
|
var import_js_format2 = require("@e22m4u/js-format");
|
104
|
+
function colorizeString(input) {
|
105
|
+
const c = Number(import_debug.default["selectColor"](input));
|
106
|
+
const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
|
107
|
+
return `${colorCode};1m${input}\x1B[0m`;
|
108
|
+
}
|
109
|
+
__name(colorizeString, "colorizeString");
|
97
110
|
function createDebugger(name) {
|
98
|
-
const
|
99
|
-
|
100
|
-
|
101
|
-
|
111
|
+
const debuggerName = `tsRestRouter:${name}`;
|
112
|
+
const debug = (0, import_debug.default)(debuggerName);
|
113
|
+
return function(messageOrData, ...args) {
|
114
|
+
let prefix = "";
|
115
|
+
if (typeof this === "string") {
|
116
|
+
const isDebugUsesColors = debug.useColors;
|
117
|
+
prefix = isDebugUsesColors ? colorizeString(`[${this}] `) : `[${this}] `;
|
118
|
+
}
|
119
|
+
if (typeof messageOrData === "string") {
|
120
|
+
const interpolatedMessage = (0, import_js_format2.format)(messageOrData, ...args);
|
121
|
+
return debug(prefix + interpolatedMessage);
|
122
|
+
}
|
123
|
+
const inspectOptions = {
|
124
|
+
showHidden: false,
|
125
|
+
depth: null,
|
126
|
+
colors: true,
|
127
|
+
compact: false
|
128
|
+
};
|
129
|
+
const multiString = (0, import_util.inspect)(messageOrData, inspectOptions);
|
130
|
+
const rows = multiString.split("\n");
|
131
|
+
const colorizedDebuggerName = colorizeString(debuggerName);
|
132
|
+
[...args, ...rows].forEach((v) => console.log(` ${colorizedDebuggerName} ${prefix}${v}`));
|
102
133
|
};
|
103
134
|
}
|
104
135
|
__name(createDebugger, "createDebugger");
|
@@ -122,7 +153,7 @@ var _DebuggableService = class _DebuggableService extends import_js_service.Serv
|
|
122
153
|
super(container);
|
123
154
|
const serviceName = toCamelCase(this.constructor.name);
|
124
155
|
this.debug = createDebugger(serviceName);
|
125
|
-
this.debug("
|
156
|
+
this.debug.bind("constructor")("Service created.");
|
126
157
|
}
|
127
158
|
};
|
128
159
|
__name(_DebuggableService, "DebuggableService");
|
@@ -132,14 +163,113 @@ var DebuggableService = _DebuggableService;
|
|
132
163
|
var import_js_format4 = require("@e22m4u/js-format");
|
133
164
|
var import_js_trie_router2 = require("@e22m4u/js-trie-router");
|
134
165
|
var import_ts_data_schema2 = require("@e22m4u/ts-data-schema");
|
135
|
-
var import_ts_data_schema3 = require("@e22m4u/ts-data-schema");
|
136
166
|
|
137
|
-
// dist/esm/decorators/
|
167
|
+
// dist/esm/decorators/after/after-metadata.js
|
138
168
|
var import_ts_reflector = require("@e22m4u/ts-reflector");
|
139
|
-
var
|
169
|
+
var AFTER_METADATA_KEY = new import_ts_reflector.MetadataKey("afterMetadataKey");
|
140
170
|
|
141
|
-
// dist/esm/decorators/
|
171
|
+
// dist/esm/decorators/after/after-reflector.js
|
142
172
|
var import_ts_reflector2 = require("@e22m4u/ts-reflector");
|
173
|
+
var _AfterReflector = class _AfterReflector {
|
174
|
+
/**
|
175
|
+
* Set metadata.
|
176
|
+
*
|
177
|
+
* @param metadata
|
178
|
+
* @param target
|
179
|
+
* @param propertyKey
|
180
|
+
*/
|
181
|
+
static addMetadata(metadata, target, propertyKey) {
|
182
|
+
const oldArray = import_ts_reflector2.Reflector.getOwnMetadata(AFTER_METADATA_KEY, target, propertyKey) ?? [];
|
183
|
+
const newArray = [metadata, ...oldArray];
|
184
|
+
import_ts_reflector2.Reflector.defineMetadata(AFTER_METADATA_KEY, newArray, target, propertyKey);
|
185
|
+
}
|
186
|
+
/**
|
187
|
+
* Get metadata.
|
188
|
+
*
|
189
|
+
* @param target
|
190
|
+
* @param propertyKey
|
191
|
+
*/
|
192
|
+
static getMetadata(target, propertyKey) {
|
193
|
+
const metadata = import_ts_reflector2.Reflector.getOwnMetadata(AFTER_METADATA_KEY, target, propertyKey);
|
194
|
+
return metadata ?? [];
|
195
|
+
}
|
196
|
+
};
|
197
|
+
__name(_AfterReflector, "AfterReflector");
|
198
|
+
var AfterReflector = _AfterReflector;
|
199
|
+
|
200
|
+
// dist/esm/decorators/after/after-decorator.js
|
201
|
+
var import_ts_reflector3 = require("@e22m4u/ts-reflector");
|
202
|
+
var import_ts_reflector4 = require("@e22m4u/ts-reflector");
|
203
|
+
function after(middleware) {
|
204
|
+
return function(target, propertyKey, descriptor) {
|
205
|
+
const decoratorType = (0, import_ts_reflector4.getDecoratorTargetType)(target, propertyKey, descriptor);
|
206
|
+
if (decoratorType === import_ts_reflector3.DecoratorTargetType.CONSTRUCTOR) {
|
207
|
+
AfterReflector.addMetadata({ middleware }, target);
|
208
|
+
} else if (decoratorType === import_ts_reflector3.DecoratorTargetType.INSTANCE_METHOD) {
|
209
|
+
AfterReflector.addMetadata({ propertyKey, middleware }, target.constructor, propertyKey);
|
210
|
+
} else {
|
211
|
+
throw new Error("@after decorator is only supported on a class or an instance method.");
|
212
|
+
}
|
213
|
+
};
|
214
|
+
}
|
215
|
+
__name(after, "after");
|
216
|
+
|
217
|
+
// dist/esm/decorators/before/before-metadata.js
|
218
|
+
var import_ts_reflector5 = require("@e22m4u/ts-reflector");
|
219
|
+
var BEFORE_METADATA_KEY = new import_ts_reflector5.MetadataKey("beforeMetadataKey");
|
220
|
+
|
221
|
+
// dist/esm/decorators/before/before-reflector.js
|
222
|
+
var import_ts_reflector6 = require("@e22m4u/ts-reflector");
|
223
|
+
var _BeforeReflector = class _BeforeReflector {
|
224
|
+
/**
|
225
|
+
* Set metadata.
|
226
|
+
*
|
227
|
+
* @param metadata
|
228
|
+
* @param target
|
229
|
+
* @param propertyKey
|
230
|
+
*/
|
231
|
+
static addMetadata(metadata, target, propertyKey) {
|
232
|
+
const oldArray = import_ts_reflector6.Reflector.getOwnMetadata(BEFORE_METADATA_KEY, target, propertyKey) ?? [];
|
233
|
+
const newArray = [metadata, ...oldArray];
|
234
|
+
import_ts_reflector6.Reflector.defineMetadata(BEFORE_METADATA_KEY, newArray, target, propertyKey);
|
235
|
+
}
|
236
|
+
/**
|
237
|
+
* Get metadata.
|
238
|
+
*
|
239
|
+
* @param target
|
240
|
+
* @param propertyKey
|
241
|
+
*/
|
242
|
+
static getMetadata(target, propertyKey) {
|
243
|
+
const metadata = import_ts_reflector6.Reflector.getOwnMetadata(BEFORE_METADATA_KEY, target, propertyKey);
|
244
|
+
return metadata ?? [];
|
245
|
+
}
|
246
|
+
};
|
247
|
+
__name(_BeforeReflector, "BeforeReflector");
|
248
|
+
var BeforeReflector = _BeforeReflector;
|
249
|
+
|
250
|
+
// dist/esm/decorators/before/before-decorator.js
|
251
|
+
var import_ts_reflector7 = require("@e22m4u/ts-reflector");
|
252
|
+
var import_ts_reflector8 = require("@e22m4u/ts-reflector");
|
253
|
+
function before(middleware) {
|
254
|
+
return function(target, propertyKey, descriptor) {
|
255
|
+
const decoratorType = (0, import_ts_reflector8.getDecoratorTargetType)(target, propertyKey, descriptor);
|
256
|
+
if (decoratorType === import_ts_reflector7.DecoratorTargetType.CONSTRUCTOR) {
|
257
|
+
BeforeReflector.addMetadata({ middleware }, target);
|
258
|
+
} else if (decoratorType === import_ts_reflector7.DecoratorTargetType.INSTANCE_METHOD) {
|
259
|
+
BeforeReflector.addMetadata({ propertyKey, middleware }, target.constructor, propertyKey);
|
260
|
+
} else {
|
261
|
+
throw new Error("@before decorator is only supported on a class or an instance method.");
|
262
|
+
}
|
263
|
+
};
|
264
|
+
}
|
265
|
+
__name(before, "before");
|
266
|
+
|
267
|
+
// dist/esm/decorators/action/action-metadata.js
|
268
|
+
var import_ts_reflector9 = require("@e22m4u/ts-reflector");
|
269
|
+
var ACTIONS_METADATA_KEY = new import_ts_reflector9.MetadataKey("actionsMetadataKey");
|
270
|
+
|
271
|
+
// dist/esm/decorators/action/action-reflector.js
|
272
|
+
var import_ts_reflector10 = require("@e22m4u/ts-reflector");
|
143
273
|
var _ActionReflector = class _ActionReflector {
|
144
274
|
/**
|
145
275
|
* Set metadata.
|
@@ -149,10 +279,10 @@ var _ActionReflector = class _ActionReflector {
|
|
149
279
|
* @param propertyKey
|
150
280
|
*/
|
151
281
|
static setMetadata(metadata, target, propertyKey) {
|
152
|
-
const oldMap =
|
282
|
+
const oldMap = import_ts_reflector10.Reflector.getOwnMetadata(ACTIONS_METADATA_KEY, target);
|
153
283
|
const newMap = new Map(oldMap);
|
154
284
|
newMap.set(propertyKey, metadata);
|
155
|
-
|
285
|
+
import_ts_reflector10.Reflector.defineMetadata(ACTIONS_METADATA_KEY, newMap, target);
|
156
286
|
}
|
157
287
|
/**
|
158
288
|
* Get metadata.
|
@@ -160,7 +290,7 @@ var _ActionReflector = class _ActionReflector {
|
|
160
290
|
* @param target
|
161
291
|
*/
|
162
292
|
static getMetadata(target) {
|
163
|
-
const metadata =
|
293
|
+
const metadata = import_ts_reflector10.Reflector.getOwnMetadata(ACTIONS_METADATA_KEY, target);
|
164
294
|
return metadata ?? /* @__PURE__ */ new Map();
|
165
295
|
}
|
166
296
|
};
|
@@ -169,12 +299,12 @@ var ActionReflector = _ActionReflector;
|
|
169
299
|
|
170
300
|
// dist/esm/decorators/action/action-decorator.js
|
171
301
|
var import_js_trie_router = require("@e22m4u/js-trie-router");
|
172
|
-
var
|
173
|
-
var
|
302
|
+
var import_ts_reflector11 = require("@e22m4u/ts-reflector");
|
303
|
+
var import_ts_reflector12 = require("@e22m4u/ts-reflector");
|
174
304
|
function action(options) {
|
175
305
|
return function(target, propertyKey, descriptor) {
|
176
|
-
const decoratorType = (0,
|
177
|
-
if (decoratorType !==
|
306
|
+
const decoratorType = (0, import_ts_reflector12.getDecoratorTargetType)(target, propertyKey, descriptor);
|
307
|
+
if (decoratorType !== import_ts_reflector11.DecoratorTargetType.INSTANCE_METHOD)
|
178
308
|
throw new Error("@action decorator is only supported on an instance method.");
|
179
309
|
ActionReflector.setMetadata({ ...options, propertyKey }, target.constructor, propertyKey);
|
180
310
|
};
|
@@ -197,15 +327,15 @@ var del = /* @__PURE__ */ __name((path, options) => {
|
|
197
327
|
}, "del");
|
198
328
|
|
199
329
|
// dist/esm/decorators/controller/controller-metadata.js
|
200
|
-
var
|
201
|
-
var CONTROLLER_METADATA_KEY = new
|
330
|
+
var import_ts_reflector13 = require("@e22m4u/ts-reflector");
|
331
|
+
var CONTROLLER_METADATA_KEY = new import_ts_reflector13.MetadataKey("controllerMetadataKey");
|
202
332
|
|
203
333
|
// dist/esm/decorators/controller/controller-decorator.js
|
204
|
-
var
|
205
|
-
var
|
334
|
+
var import_ts_reflector15 = require("@e22m4u/ts-reflector");
|
335
|
+
var import_ts_reflector16 = require("@e22m4u/ts-reflector");
|
206
336
|
|
207
337
|
// dist/esm/decorators/controller/controller-reflector.js
|
208
|
-
var
|
338
|
+
var import_ts_reflector14 = require("@e22m4u/ts-reflector");
|
209
339
|
var _ControllerReflector = class _ControllerReflector {
|
210
340
|
/**
|
211
341
|
* Set metadata.
|
@@ -214,7 +344,7 @@ var _ControllerReflector = class _ControllerReflector {
|
|
214
344
|
* @param target
|
215
345
|
*/
|
216
346
|
static setMetadata(metadata, target) {
|
217
|
-
return
|
347
|
+
return import_ts_reflector14.Reflector.defineMetadata(CONTROLLER_METADATA_KEY, metadata, target);
|
218
348
|
}
|
219
349
|
/**
|
220
350
|
* Get metadata.
|
@@ -222,25 +352,34 @@ var _ControllerReflector = class _ControllerReflector {
|
|
222
352
|
* @param target
|
223
353
|
*/
|
224
354
|
static getMetadata(target) {
|
225
|
-
return
|
355
|
+
return import_ts_reflector14.Reflector.getOwnMetadata(CONTROLLER_METADATA_KEY, target);
|
226
356
|
}
|
227
357
|
};
|
228
358
|
__name(_ControllerReflector, "ControllerReflector");
|
229
359
|
var ControllerReflector = _ControllerReflector;
|
230
360
|
|
231
361
|
// dist/esm/decorators/controller/controller-decorator.js
|
232
|
-
function controller(options) {
|
362
|
+
function controller(pathOrOptions, options) {
|
233
363
|
return function(target) {
|
234
|
-
const decoratorType = (0,
|
235
|
-
if (decoratorType !==
|
364
|
+
const decoratorType = (0, import_ts_reflector16.getDecoratorTargetType)(target);
|
365
|
+
if (decoratorType !== import_ts_reflector15.DecoratorTargetType.CONSTRUCTOR)
|
236
366
|
throw new Error("@controller decorator is only supported on a class.");
|
367
|
+
if (typeof pathOrOptions === "string") {
|
368
|
+
if (!options) {
|
369
|
+
options = { path: pathOrOptions };
|
370
|
+
} else {
|
371
|
+
options.path = pathOrOptions;
|
372
|
+
}
|
373
|
+
} else if (typeof pathOrOptions === "object") {
|
374
|
+
options = pathOrOptions;
|
375
|
+
}
|
237
376
|
ControllerReflector.setMetadata({ ...options, className: target.name }, target);
|
238
377
|
};
|
239
378
|
}
|
240
379
|
__name(controller, "controller");
|
241
380
|
|
242
381
|
// dist/esm/decorators/request-data/request-data-metadata.js
|
243
|
-
var
|
382
|
+
var import_ts_reflector17 = require("@e22m4u/ts-reflector");
|
244
383
|
var RequestDataSource;
|
245
384
|
(function(RequestDataSource2) {
|
246
385
|
RequestDataSource2["PARAMS"] = "params";
|
@@ -249,15 +388,15 @@ var RequestDataSource;
|
|
249
388
|
RequestDataSource2["COOKIE"] = "cookie";
|
250
389
|
RequestDataSource2["BODY"] = "body";
|
251
390
|
})(RequestDataSource || (RequestDataSource = {}));
|
252
|
-
var REQUEST_DATA_METADATA_KEY = new
|
391
|
+
var REQUEST_DATA_METADATA_KEY = new import_ts_reflector17.MetadataKey("requestDataMetadataKey");
|
253
392
|
|
254
393
|
// dist/esm/decorators/request-data/request-data-decorator.js
|
255
394
|
var import_ts_data_schema = require("@e22m4u/ts-data-schema");
|
256
|
-
var
|
257
|
-
var
|
395
|
+
var import_ts_reflector19 = require("@e22m4u/ts-reflector");
|
396
|
+
var import_ts_reflector20 = require("@e22m4u/ts-reflector");
|
258
397
|
|
259
398
|
// dist/esm/decorators/request-data/request-data-reflector.js
|
260
|
-
var
|
399
|
+
var import_ts_reflector18 = require("@e22m4u/ts-reflector");
|
261
400
|
var _RequestDataReflector = class _RequestDataReflector {
|
262
401
|
/**
|
263
402
|
* Set metadata.
|
@@ -268,10 +407,10 @@ var _RequestDataReflector = class _RequestDataReflector {
|
|
268
407
|
* @param propertyKey
|
269
408
|
*/
|
270
409
|
static setMetadata(metadata, target, index, propertyKey) {
|
271
|
-
const oldMap =
|
410
|
+
const oldMap = import_ts_reflector18.Reflector.getOwnMetadata(REQUEST_DATA_METADATA_KEY, target, propertyKey);
|
272
411
|
const newMap = new Map(oldMap);
|
273
412
|
newMap.set(index, metadata);
|
274
|
-
|
413
|
+
import_ts_reflector18.Reflector.defineMetadata(REQUEST_DATA_METADATA_KEY, newMap, target, propertyKey);
|
275
414
|
}
|
276
415
|
/**
|
277
416
|
* Get metadata.
|
@@ -280,7 +419,7 @@ var _RequestDataReflector = class _RequestDataReflector {
|
|
280
419
|
* @param propertyKey
|
281
420
|
*/
|
282
421
|
static getMetadata(target, propertyKey) {
|
283
|
-
const metadata =
|
422
|
+
const metadata = import_ts_reflector18.Reflector.getOwnMetadata(REQUEST_DATA_METADATA_KEY, target, propertyKey);
|
284
423
|
return metadata ?? /* @__PURE__ */ new Map();
|
285
424
|
}
|
286
425
|
};
|
@@ -290,8 +429,8 @@ var RequestDataReflector = _RequestDataReflector;
|
|
290
429
|
// dist/esm/decorators/request-data/request-data-decorator.js
|
291
430
|
function requestData(options) {
|
292
431
|
return function(target, propertyKey, indexOrDescriptor) {
|
293
|
-
const decoratorType = (0,
|
294
|
-
if (decoratorType !==
|
432
|
+
const decoratorType = (0, import_ts_reflector20.getDecoratorTargetType)(target, propertyKey, indexOrDescriptor);
|
433
|
+
if (decoratorType !== import_ts_reflector19.DecoratorTargetType.INSTANCE_METHOD_PARAMETER)
|
295
434
|
throw new Error("@requestData decorator is only supported on an instance method parameter.");
|
296
435
|
RequestDataReflector.setMetadata(options, target.constructor, indexOrDescriptor, propertyKey);
|
297
436
|
};
|
@@ -331,7 +470,7 @@ var headers = createRequestDataDecoratorWithSource(RequestDataSource.HEADERS);
|
|
331
470
|
var header = createRequestDataPropertyDecoratorWithSource(RequestDataSource.HEADERS);
|
332
471
|
var cookies = createRequestDataDecoratorWithSource(RequestDataSource.COOKIE);
|
333
472
|
var cookie = createRequestDataPropertyDecoratorWithSource(RequestDataSource.COOKIE);
|
334
|
-
var
|
473
|
+
var field = createRequestDataPropertyDecoratorWithSource(RequestDataSource.BODY);
|
335
474
|
function body(schemaOrType) {
|
336
475
|
let schema;
|
337
476
|
if (typeof schemaOrType === "object") {
|
@@ -346,15 +485,15 @@ function body(schemaOrType) {
|
|
346
485
|
__name(body, "body");
|
347
486
|
|
348
487
|
// dist/esm/decorators/request-context/request-context-metadata.js
|
349
|
-
var
|
350
|
-
var REQUEST_CONTEXT_METADATA_KEY = new
|
488
|
+
var import_ts_reflector21 = require("@e22m4u/ts-reflector");
|
489
|
+
var REQUEST_CONTEXT_METADATA_KEY = new import_ts_reflector21.MetadataKey("requestContextMetadataKey");
|
351
490
|
|
352
491
|
// dist/esm/decorators/request-context/request-context-decorator.js
|
353
|
-
var
|
354
|
-
var
|
492
|
+
var import_ts_reflector23 = require("@e22m4u/ts-reflector");
|
493
|
+
var import_ts_reflector24 = require("@e22m4u/ts-reflector");
|
355
494
|
|
356
495
|
// dist/esm/decorators/request-context/request-context-reflector.js
|
357
|
-
var
|
496
|
+
var import_ts_reflector22 = require("@e22m4u/ts-reflector");
|
358
497
|
var _RequestContextReflector = class _RequestContextReflector {
|
359
498
|
/**
|
360
499
|
* Set metadata.
|
@@ -365,10 +504,10 @@ var _RequestContextReflector = class _RequestContextReflector {
|
|
365
504
|
* @param propertyKey
|
366
505
|
*/
|
367
506
|
static setMetadata(metadata, target, index, propertyKey) {
|
368
|
-
const oldMap =
|
507
|
+
const oldMap = import_ts_reflector22.Reflector.getOwnMetadata(REQUEST_CONTEXT_METADATA_KEY, target, propertyKey);
|
369
508
|
const newMap = new Map(oldMap);
|
370
509
|
newMap.set(index, metadata);
|
371
|
-
|
510
|
+
import_ts_reflector22.Reflector.defineMetadata(REQUEST_CONTEXT_METADATA_KEY, newMap, target, propertyKey);
|
372
511
|
}
|
373
512
|
/**
|
374
513
|
* Get metadata.
|
@@ -377,7 +516,7 @@ var _RequestContextReflector = class _RequestContextReflector {
|
|
377
516
|
* @param propertyKey
|
378
517
|
*/
|
379
518
|
static getMetadata(target, propertyKey) {
|
380
|
-
const metadata =
|
519
|
+
const metadata = import_ts_reflector22.Reflector.getOwnMetadata(REQUEST_CONTEXT_METADATA_KEY, target, propertyKey);
|
381
520
|
return metadata ?? /* @__PURE__ */ new Map();
|
382
521
|
}
|
383
522
|
};
|
@@ -387,8 +526,8 @@ var RequestContextReflector = _RequestContextReflector;
|
|
387
526
|
// dist/esm/decorators/request-context/request-context-decorator.js
|
388
527
|
function requestContext(propertyName) {
|
389
528
|
return function(target, propertyKey, indexOrDescriptor) {
|
390
|
-
const decoratorType = (0,
|
391
|
-
if (decoratorType !==
|
529
|
+
const decoratorType = (0, import_ts_reflector24.getDecoratorTargetType)(target, propertyKey, indexOrDescriptor);
|
530
|
+
if (decoratorType !== import_ts_reflector23.DecoratorTargetType.INSTANCE_METHOD_PARAMETER)
|
392
531
|
throw new Error("@requestContext decorator is only supported on an instance method parameter.");
|
393
532
|
RequestContextReflector.setMetadata({ property: propertyName }, target.constructor, indexOrDescriptor, propertyKey);
|
394
533
|
};
|
@@ -403,6 +542,9 @@ function response() {
|
|
403
542
|
}
|
404
543
|
__name(response, "response");
|
405
544
|
|
545
|
+
// dist/esm/controller-registry.js
|
546
|
+
var import_ts_data_schema3 = require("@e22m4u/ts-data-schema");
|
547
|
+
|
406
548
|
// dist/esm/errors/not-a-controller-error.js
|
407
549
|
var import_js_format3 = require("@e22m4u/js-format");
|
408
550
|
var _NotAControllerError = class _NotAControllerError extends import_js_format3.Errorf {
|
@@ -431,41 +573,60 @@ var _ControllerRegistry = class _ControllerRegistry extends DebuggableService {
|
|
431
573
|
* @param options
|
432
574
|
*/
|
433
575
|
addController(ctor, options) {
|
576
|
+
const debug = this.debug.bind(this.addController.name);
|
434
577
|
if (this.hasController(ctor))
|
435
578
|
throw new import_js_format4.Errorf("The controller %v is already registered.");
|
436
579
|
const controllerMd = ControllerReflector.getMetadata(ctor);
|
437
580
|
if (!controllerMd)
|
438
581
|
throw new NotAControllerError(ctor);
|
439
|
-
|
440
|
-
|
441
|
-
this.
|
442
|
-
|
443
|
-
this.
|
444
|
-
|
445
|
-
|
582
|
+
debug("Adding controller %s.", ctor.name);
|
583
|
+
let pathPrefix = "";
|
584
|
+
pathPrefix += this.getPathPrefixFromControllerRootOptions(options);
|
585
|
+
pathPrefix += "/";
|
586
|
+
pathPrefix += this.getPathPrefixFromControllerMetadata(ctor);
|
587
|
+
pathPrefix = pathPrefix.replace(/\/{2,}/g, "/").replace(/\/$/, "");
|
588
|
+
debug("Controller path prefix is %v.", pathPrefix);
|
589
|
+
const preHandlers = [
|
590
|
+
...this.getPreHandlersFromControllerRootOptions(options),
|
591
|
+
...this.getPreHandlersFromBeforeMetadata(ctor),
|
592
|
+
...this.getPreHandlersFromControllerMetadata(ctor)
|
593
|
+
];
|
594
|
+
debug("Controller has %v pre-handlers.", preHandlers.length);
|
595
|
+
const postHandlers = [
|
596
|
+
...this.getPostHandlersFromControllerRootOptions(options),
|
597
|
+
...this.getPostHandlersFromAfterMetadata(ctor),
|
598
|
+
...this.getPostHandlersFromControllerMetadata(ctor)
|
599
|
+
];
|
600
|
+
debug("Controller has %v post-handlers.", postHandlers.length);
|
446
601
|
const actionsMd = ActionReflector.getMetadata(ctor);
|
447
|
-
|
602
|
+
debug("%v actions found.", actionsMd.size);
|
448
603
|
const router = this.getService(import_js_trie_router2.TrieRouter);
|
449
604
|
actionsMd.forEach((actionMd, actionName) => {
|
450
|
-
|
451
|
-
|
452
|
-
const prefixedRoutePath = `${pathPrefix}/${actionMd.path}`.replace(
|
453
|
-
|
454
|
-
const actionPreHandlers =
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
605
|
+
debug("Adding route for %s.%s.", ctor.name, actionName);
|
606
|
+
debug("Route path is %v.", actionMd.path);
|
607
|
+
const prefixedRoutePath = `${pathPrefix}/${actionMd.path}`.replace(/\/{2,}/g, "/").replace(/\/$/, "");
|
608
|
+
debug("Prefixed route path is %v.", prefixedRoutePath);
|
609
|
+
const actionPreHandlers = [
|
610
|
+
...preHandlers,
|
611
|
+
...this.getPreHandlersFromBeforeMetadata(ctor, actionName),
|
612
|
+
...this.getPreHandlersFromActionMetadata(ctor, actionName)
|
613
|
+
];
|
614
|
+
debug("%v action pre-handlers in total.", actionPreHandlers.length);
|
615
|
+
const actionPostHandlers = [
|
616
|
+
...postHandlers,
|
617
|
+
...this.getPostHandlersFromAfterMetadata(ctor, actionName),
|
618
|
+
...this.getPostHandlersFromActionMetadata(ctor, actionName)
|
619
|
+
];
|
620
|
+
debug("%v action post-handlers in total.", actionPostHandlers.length);
|
460
621
|
const routeHandler = this.createRouteHandler(ctor, actionName);
|
461
622
|
router.defineRoute({
|
462
623
|
method: actionMd.method,
|
463
624
|
path: prefixedRoutePath,
|
464
|
-
preHandler:
|
625
|
+
preHandler: actionPreHandlers,
|
465
626
|
handler: routeHandler,
|
466
|
-
postHandler:
|
627
|
+
postHandler: actionPostHandlers
|
467
628
|
});
|
468
|
-
|
629
|
+
debug("Route %s %v is added.", actionMd.method.toUpperCase(), prefixedRoutePath);
|
469
630
|
});
|
470
631
|
this.controllers.add(ctor);
|
471
632
|
return this;
|
@@ -479,57 +640,193 @@ var _ControllerRegistry = class _ControllerRegistry extends DebuggableService {
|
|
479
640
|
return this.controllers.has(ctor);
|
480
641
|
}
|
481
642
|
/**
|
482
|
-
* Get path prefix
|
643
|
+
* Get path prefix from controller root options.
|
483
644
|
*
|
484
|
-
* @param controllerMd
|
485
645
|
* @param options
|
486
646
|
*/
|
487
|
-
|
488
|
-
const
|
489
|
-
|
490
|
-
const
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
647
|
+
getPathPrefixFromControllerRootOptions(options) {
|
648
|
+
const debug = this.debug.bind(this.getPathPrefixFromControllerRootOptions.name);
|
649
|
+
debug("Getting path prefix from controller root options.");
|
650
|
+
const res = (options == null ? void 0 : options.pathPrefix) || "";
|
651
|
+
debug("Controller path prefix is %v.", res);
|
652
|
+
return res;
|
653
|
+
}
|
654
|
+
/**
|
655
|
+
* Get path prefix from controller metadata.
|
656
|
+
*
|
657
|
+
* @param ctor
|
658
|
+
*/
|
659
|
+
getPathPrefixFromControllerMetadata(ctor) {
|
660
|
+
const debug = this.debug.bind(this.getPathPrefixFromControllerMetadata.name);
|
661
|
+
debug("Getting path prefix from @controller metadata.");
|
662
|
+
debug("Metadata target is %s.", ctor.name);
|
663
|
+
const md = ControllerReflector.getMetadata(ctor);
|
664
|
+
if (!md)
|
665
|
+
throw new import_js_format4.Errorf("Controller %v has no metadata.", ctor);
|
666
|
+
const res = md.path || "";
|
667
|
+
debug("Controller path prefix is %v.", res);
|
668
|
+
return md.path || "";
|
495
669
|
}
|
496
670
|
/**
|
497
|
-
*
|
671
|
+
* Getting pre-handlers from controller root options.
|
498
672
|
*
|
499
|
-
* @param controllerMd
|
500
673
|
* @param options
|
501
674
|
*/
|
502
|
-
|
503
|
-
|
675
|
+
getPreHandlersFromControllerRootOptions(options) {
|
676
|
+
const debug = this.debug.bind(this.getPreHandlersFromControllerRootOptions.name);
|
677
|
+
debug("Getting pre-handlers from controller root options.");
|
678
|
+
let res = [];
|
504
679
|
if (options == null ? void 0 : options.before)
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
if (controllerMd.before)
|
509
|
-
ctlPreHandlers = Array.isArray(controllerMd.before) ? controllerMd.before : [controllerMd.before];
|
510
|
-
this.debug("%v controller pre-handlers found.", ctlPreHandlers.length);
|
511
|
-
const mergedPreHandlers = [...rootPreHandlers, ...ctlPreHandlers];
|
512
|
-
this.debug("%v merged pre-handlers.", mergedPreHandlers.length);
|
513
|
-
return mergedPreHandlers;
|
680
|
+
res = Array.isArray(options.before) ? options.before : [options.before];
|
681
|
+
debug("%v pre-handlers found.", res.length);
|
682
|
+
return res;
|
514
683
|
}
|
515
684
|
/**
|
516
|
-
*
|
685
|
+
* Getting post-handlers from controller root options.
|
517
686
|
*
|
518
|
-
* @param controllerMd
|
519
687
|
* @param options
|
520
688
|
*/
|
521
|
-
|
522
|
-
|
689
|
+
getPostHandlersFromControllerRootOptions(options) {
|
690
|
+
const debug = this.debug.bind(this.getPostHandlersFromControllerRootOptions.name);
|
691
|
+
debug("Getting post-handlers from controller root options.");
|
692
|
+
let res = [];
|
523
693
|
if (options == null ? void 0 : options.after)
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
694
|
+
res = Array.isArray(options.after) ? options.after : [options.after];
|
695
|
+
debug("%v post-handlers found.", res.length);
|
696
|
+
return res;
|
697
|
+
}
|
698
|
+
/**
|
699
|
+
* Get pre-handlers from before metadata.
|
700
|
+
*
|
701
|
+
* @param ctor
|
702
|
+
* @param actionName
|
703
|
+
*/
|
704
|
+
getPreHandlersFromBeforeMetadata(ctor, actionName) {
|
705
|
+
const debug = this.debug.bind(this.getPreHandlersFromBeforeMetadata.name);
|
706
|
+
debug("Getting pre-handlers from @before metadata.");
|
707
|
+
if (actionName) {
|
708
|
+
debug("Target is %s.%s.", ctor.name, actionName);
|
709
|
+
} else {
|
710
|
+
debug("Target is %s.", ctor.name);
|
711
|
+
}
|
712
|
+
let preHandlers = [];
|
713
|
+
const mdArray = BeforeReflector.getMetadata(ctor, actionName);
|
714
|
+
mdArray.forEach((md) => {
|
715
|
+
if (Array.isArray(md.middleware)) {
|
716
|
+
preHandlers = [...preHandlers, ...md.middleware];
|
717
|
+
} else {
|
718
|
+
preHandlers.push(md.middleware);
|
719
|
+
}
|
720
|
+
});
|
721
|
+
if (mdArray.length) {
|
722
|
+
debug("%v pre-handlers found.", mdArray.length);
|
723
|
+
} else {
|
724
|
+
debug("No pre-handlers found.");
|
725
|
+
}
|
726
|
+
return preHandlers;
|
727
|
+
}
|
728
|
+
/**
|
729
|
+
* Get post-handlers from after metadata.
|
730
|
+
*
|
731
|
+
* @param ctor
|
732
|
+
* @param actionName
|
733
|
+
*/
|
734
|
+
getPostHandlersFromAfterMetadata(ctor, actionName) {
|
735
|
+
const debug = this.debug.bind(this.getPostHandlersFromAfterMetadata.name);
|
736
|
+
debug("Getting post-handlers from @after metadata.");
|
737
|
+
if (actionName) {
|
738
|
+
debug("Target is %s.%s.", ctor.name, actionName);
|
739
|
+
} else {
|
740
|
+
debug("Target is %s.", ctor.name);
|
741
|
+
}
|
742
|
+
let res = [];
|
743
|
+
const mdArray = AfterReflector.getMetadata(ctor, actionName);
|
744
|
+
mdArray.forEach((md) => {
|
745
|
+
if (Array.isArray(md.middleware)) {
|
746
|
+
res = [...res, ...md.middleware];
|
747
|
+
} else {
|
748
|
+
res.push(md.middleware);
|
749
|
+
}
|
750
|
+
});
|
751
|
+
if (mdArray.length) {
|
752
|
+
debug("%v post-handlers found.", mdArray.length);
|
753
|
+
} else {
|
754
|
+
debug("No post-handlers found.");
|
755
|
+
}
|
756
|
+
return res;
|
757
|
+
}
|
758
|
+
/**
|
759
|
+
* Get pre-handlers from controller metadata.
|
760
|
+
*
|
761
|
+
* @param ctor
|
762
|
+
*/
|
763
|
+
getPreHandlersFromControllerMetadata(ctor) {
|
764
|
+
const debug = this.debug.bind(this.getPreHandlersFromControllerMetadata.name);
|
765
|
+
debug("Getting pre-handlers from @controller metadata.");
|
766
|
+
debug("Target is %s.", ctor.name);
|
767
|
+
const md = ControllerReflector.getMetadata(ctor);
|
768
|
+
if (!md)
|
769
|
+
throw new import_js_format4.Errorf("Controller %v has no metadata.", ctor);
|
770
|
+
let res = [];
|
771
|
+
if (md.before)
|
772
|
+
res = Array.isArray(md.before) ? md.before : [md.before];
|
773
|
+
debug("%v pre-handlers found.", res.length);
|
774
|
+
return res;
|
775
|
+
}
|
776
|
+
/**
|
777
|
+
* Get post-handlers from controller metadata.
|
778
|
+
*
|
779
|
+
* @param ctor
|
780
|
+
*/
|
781
|
+
getPostHandlersFromControllerMetadata(ctor) {
|
782
|
+
const debug = this.debug.bind(this.getPostHandlersFromControllerMetadata.name);
|
783
|
+
debug("Getting post-handlers from @controller metadata.");
|
784
|
+
const md = ControllerReflector.getMetadata(ctor);
|
785
|
+
if (!md)
|
786
|
+
throw new import_js_format4.Errorf("Controller %v has no metadata.", ctor);
|
787
|
+
let res = [];
|
788
|
+
if (md.after)
|
789
|
+
res = Array.isArray(md.after) ? md.after : [md.after];
|
790
|
+
debug("%v post-handlers found.", res.length);
|
791
|
+
return res;
|
792
|
+
}
|
793
|
+
/**
|
794
|
+
* Get pre-handlers from action metadata.
|
795
|
+
*
|
796
|
+
* @param ctor
|
797
|
+
* @param actionName
|
798
|
+
*/
|
799
|
+
getPreHandlersFromActionMetadata(ctor, actionName) {
|
800
|
+
const debug = this.debug.bind(this.getPreHandlersFromActionMetadata.name);
|
801
|
+
debug("Getting pre-handlers from @action metadata.");
|
802
|
+
const actionsMd = ActionReflector.getMetadata(ctor);
|
803
|
+
const actionMd = actionsMd.get(actionName);
|
804
|
+
if (!actionMd)
|
805
|
+
throw new import_js_format4.Errorf("Action %s.%s has no metadata.", ctor.name, actionName);
|
806
|
+
let res = [];
|
807
|
+
if (actionMd.before)
|
808
|
+
res = Array.isArray(actionMd.before) ? actionMd.before : [actionMd.before];
|
809
|
+
debug("%v pre-handlers found.", res.length);
|
810
|
+
return res;
|
811
|
+
}
|
812
|
+
/**
|
813
|
+
* Get post-handlers from action metadata.
|
814
|
+
*
|
815
|
+
* @param ctor
|
816
|
+
* @param actionName
|
817
|
+
*/
|
818
|
+
getPostHandlersFromActionMetadata(ctor, actionName) {
|
819
|
+
const debug = this.debug.bind(this.getPreHandlersFromActionMetadata.name);
|
820
|
+
debug("Getting post-handlers from @action metadata.");
|
821
|
+
const actionsMd = ActionReflector.getMetadata(ctor);
|
822
|
+
const actionMd = actionsMd.get(actionName);
|
823
|
+
if (!actionMd)
|
824
|
+
throw new import_js_format4.Errorf("Action %s.%s has no metadata.", ctor.name, actionName);
|
825
|
+
let res = [];
|
826
|
+
if (actionMd.after)
|
827
|
+
res = Array.isArray(actionMd.after) ? actionMd.after : [actionMd.after];
|
828
|
+
debug("%v pre-handlers found.", res.length);
|
829
|
+
return res;
|
533
830
|
}
|
534
831
|
/**
|
535
832
|
* Create route handler.
|
@@ -539,34 +836,35 @@ var _ControllerRegistry = class _ControllerRegistry extends DebuggableService {
|
|
539
836
|
* @protected
|
540
837
|
*/
|
541
838
|
createRouteHandler(controllerCtor, actionName) {
|
542
|
-
this.debug(
|
839
|
+
const debug = this.debug.bind(this.createRouteHandler.name);
|
840
|
+
debug("Creating route handler for %s.%s.", controllerCtor.name, actionName);
|
543
841
|
const requestContextMetadataMap = RequestContextReflector.getMetadata(controllerCtor, actionName);
|
544
842
|
const requestDataMetadataMap = RequestDataReflector.getMetadata(controllerCtor, actionName);
|
545
843
|
const argsNumber = controllerCtor.prototype[actionName].length;
|
546
844
|
const dataTypeCaster = this.getService(import_ts_data_schema3.DataTypeCaster);
|
547
845
|
const dataValidator = this.getService(import_ts_data_schema2.DataValidator);
|
548
846
|
return (requestContext2) => {
|
549
|
-
|
847
|
+
debug("Executing route handler for %s.%s.", controllerCtor.name, actionName);
|
550
848
|
const args = Array(argsNumber).fill(void 0).map((_, index) => {
|
551
849
|
const requestContextMd = requestContextMetadataMap.get(index);
|
552
850
|
if (requestContextMd != null) {
|
553
|
-
|
851
|
+
debug("Argument %v has request context metadata.", index);
|
554
852
|
if (requestContextMd.property == null) {
|
555
|
-
|
556
|
-
|
853
|
+
debug("Request context property is not specified.");
|
854
|
+
debug("Argument %v is set to %v.", index, requestContext2);
|
557
855
|
return requestContext2;
|
558
856
|
}
|
559
857
|
const propName = requestContextMd.property;
|
560
858
|
const propValue = requestContext2[propName];
|
561
|
-
|
562
|
-
|
859
|
+
debug("Request context property is %v.", propName);
|
860
|
+
debug("Argument %v is set to %v.", index, propValue);
|
563
861
|
return propValue;
|
564
862
|
} else {
|
565
|
-
|
863
|
+
debug("No RequestContextMetadata specified for %v argument.", index);
|
566
864
|
}
|
567
865
|
const requestDataMd = requestDataMetadataMap.get(index);
|
568
866
|
if (requestDataMd != null) {
|
569
|
-
|
867
|
+
debug("Argument %v has request data metadata.", index);
|
570
868
|
let data;
|
571
869
|
switch (requestDataMd.source) {
|
572
870
|
case RequestDataSource.PARAMS:
|
@@ -585,29 +883,29 @@ var _ControllerRegistry = class _ControllerRegistry extends DebuggableService {
|
|
585
883
|
data = requestContext2.body;
|
586
884
|
break;
|
587
885
|
}
|
588
|
-
|
886
|
+
debug("Request data source is %v.", requestDataMd.source);
|
589
887
|
if (requestDataMd.schema) {
|
590
888
|
data = dataTypeCaster.cast(data, requestDataMd.schema, {
|
591
889
|
noTypeCastError: true,
|
592
890
|
sourcePath: requestDataMd.source
|
593
891
|
});
|
594
|
-
|
892
|
+
debug("Data type casting is passed.");
|
595
893
|
dataValidator.validate(data, requestDataMd.schema, requestDataMd.source);
|
596
|
-
|
894
|
+
debug("Data validation is passed.");
|
597
895
|
}
|
598
896
|
if (requestDataMd.property == null) {
|
599
|
-
|
600
|
-
|
897
|
+
debug("Request data property is not specified.");
|
898
|
+
debug("Argument %v is set to %v.", index, data);
|
601
899
|
return data;
|
602
900
|
}
|
603
901
|
const dataAsObject = data;
|
604
902
|
const propName = requestDataMd.property;
|
605
903
|
const propValue = dataAsObject[propName];
|
606
|
-
|
607
|
-
|
904
|
+
debug("Request data property is %v.", propName);
|
905
|
+
debug("Argument %v is set to %v.", index, propValue);
|
608
906
|
return propValue;
|
609
907
|
} else {
|
610
|
-
|
908
|
+
debug("No RequestDataMetadata specified for %v argument.", index);
|
611
909
|
}
|
612
910
|
});
|
613
911
|
const controller2 = this.getService(controllerCtor);
|
@@ -642,7 +940,11 @@ var RestRouter = _RestRouter;
|
|
642
940
|
// Annotate the CommonJS export names for ESM import in node:
|
643
941
|
0 && (module.exports = {
|
644
942
|
ACTIONS_METADATA_KEY,
|
943
|
+
AFTER_METADATA_KEY,
|
645
944
|
ActionReflector,
|
945
|
+
AfterReflector,
|
946
|
+
BEFORE_METADATA_KEY,
|
947
|
+
BeforeReflector,
|
646
948
|
CONTROLLER_METADATA_KEY,
|
647
949
|
ControllerReflector,
|
648
950
|
ControllerRegistry,
|
@@ -654,8 +956,9 @@ var RestRouter = _RestRouter;
|
|
654
956
|
RequestDataSource,
|
655
957
|
RestRouter,
|
656
958
|
action,
|
959
|
+
after,
|
960
|
+
before,
|
657
961
|
body,
|
658
|
-
bodyParam,
|
659
962
|
capitalize,
|
660
963
|
controller,
|
661
964
|
cookie,
|
@@ -663,6 +966,7 @@ var RestRouter = _RestRouter;
|
|
663
966
|
createDebugger,
|
664
967
|
createError,
|
665
968
|
del,
|
969
|
+
field,
|
666
970
|
get,
|
667
971
|
header,
|
668
972
|
headers,
|