1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
|
4 | const uuid = require("uuid/v4");
|
5 | exports.filterMiddleware = (middleware) => {
|
6 | return []
|
7 | .concat(middleware)
|
8 | .filter(shared_utils_1.isFunction)
|
9 | .map(exports.mapToClass);
|
10 | };
|
11 | exports.mapToClass = (middleware) => {
|
12 | if (isClass(middleware)) {
|
13 | return middleware;
|
14 | }
|
15 | return assignToken(class {
|
16 | constructor() {
|
17 | this.use = (...params) => middleware(...params);
|
18 | }
|
19 | });
|
20 | };
|
21 | function isClass(middleware) {
|
22 | return middleware.toString().substring(0, 5) === 'class';
|
23 | }
|
24 | exports.isClass = isClass;
|
25 | function assignToken(metatype) {
|
26 | Object.defineProperty(metatype, 'name', { value: uuid() });
|
27 | return metatype;
|
28 | }
|
29 | exports.assignToken = assignToken;
|