UNPKG

1.84 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.MiddlewareBuilder = void 0;
4const dependencies_decorator_1 = require("@nestjs/common/decorators/core/dependencies.decorator");
5const iterare_1 = require("iterare");
6const utils_1 = require("./utils");
7class MiddlewareBuilder {
8 constructor(routesMapper, httpAdapter) {
9 this.routesMapper = routesMapper;
10 this.httpAdapter = httpAdapter;
11 this.middlewareCollection = new Set();
12 }
13 apply(...middleware) {
14 return new MiddlewareBuilder.ConfigProxy(this, (0, dependencies_decorator_1.flatten)(middleware));
15 }
16 build() {
17 return [...this.middlewareCollection];
18 }
19 getHttpAdapter() {
20 return this.httpAdapter;
21 }
22}
23exports.MiddlewareBuilder = MiddlewareBuilder;
24MiddlewareBuilder.ConfigProxy = class {
25 constructor(builder, middleware) {
26 this.builder = builder;
27 this.middleware = middleware;
28 this.excludedRoutes = [];
29 }
30 getExcludedRoutes() {
31 return this.excludedRoutes;
32 }
33 exclude(...routes) {
34 this.excludedRoutes = this.getRoutesFlatList(routes);
35 return this;
36 }
37 forRoutes(...routes) {
38 const { middlewareCollection } = this.builder;
39 const forRoutes = this.getRoutesFlatList(routes);
40 const configuration = {
41 middleware: (0, utils_1.filterMiddleware)(this.middleware, this.excludedRoutes, this.builder.getHttpAdapter()),
42 forRoutes,
43 };
44 middlewareCollection.add(configuration);
45 return this.builder;
46 }
47 getRoutesFlatList(routes) {
48 const { routesMapper } = this.builder;
49 return (0, iterare_1.iterate)(routes)
50 .map(route => routesMapper.mapRouteToRouteInfo(route))
51 .flatten()
52 .toArray();
53 }
54};