@nestjs/core
Version:
Nest - modern, fast, powerful node.js web framework (@core)
30 lines (29 loc) • 863 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
const uuid = require("uuid/v4");
exports.filterMiddleware = (middleware) => {
return []
.concat(middleware)
.filter(shared_utils_1.isFunction)
.map(exports.mapToClass);
};
exports.mapToClass = (middleware) => {
if (isClass(middleware)) {
return middleware;
}
return assignToken(class {
constructor() {
this.use = (...params) => middleware(...params);
}
});
};
function isClass(middleware) {
return middleware.toString().substring(0, 5) === 'class';
}
exports.isClass = isClass;
function assignToken(metatype) {
Object.defineProperty(metatype, 'name', { value: uuid() });
return metatype;
}
exports.assignToken = assignToken;