UNPKG

@duongtrungnguyen/nestro

Version:
102 lines 4.08 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var __decorateClass = (decorators, target, key, kind) => { var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result; if (kind && result) __defProp(target, key, result); return result; }; var gateway_module_exports = {}; __export(gateway_module_exports, { GatewayModule: () => GatewayModule }); module.exports = __toCommonJS(gateway_module_exports); var import_common = require("@nestjs/common"); var import_config_builder = require("./config-builder"); var import_controllers = require("./controllers"); var import_common2 = require("../../common"); let GatewayModule = class { /** * Creates a builder for configuring proxy routes and middlewares. * * @returns A new GatewayConfigBuilder instance. */ static builder() { return new import_config_builder.GatewayConfigBuilder(); } /** * Registers and configures the GatewayModule dynamically. * * This method accepts either a class type implementing `IGatewayConfig` or a `GatewayRoutingConfigFunction`. * If a configuration function is provided, it is invoked with a `GatewayConfigBuilder` instance to produce * a `DynamicModule` or a `Promise<DynamicModule>`. If a class type is provided, an instance is created and * its `build` method is called with the builder. * * @param config - A class type implementing `IGatewayConfig` or a configuration function (`GatewayRoutingConfigFunction`) * that receives a `GatewayConfigBuilder` and returns a `DynamicModule` or a `Promise<DynamicModule>`. * @returns A `DynamicModule` or a `Promise<DynamicModule>` representing the configured gateway module. */ static register(config) { const builder = new import_config_builder.GatewayConfigBuilder(); if (!(0, import_common2.isClass)(config)) { return config(builder); } const instance = new config(); return instance.build(builder); } configure(consumer) { if (GatewayModule.globalMiddlewares.length) { consumer.apply(...GatewayModule.globalMiddlewares).forRoutes(import_controllers.GatewayController); } GatewayModule.routes.forEach((route) => { if (!route.middlewares?.length) return; const middlewares = []; const excludes = []; route.middlewares.forEach((hook) => { if (typeof hook === "function") { middlewares.push(hook); } else { middlewares.push(hook.instance); if (hook.excludes?.length) { excludes.push(...hook.excludes); } } }); if (middlewares.length) { const applied = consumer.apply(...middlewares); if (excludes.length) { applied.exclude(...excludes).forRoutes(route.route); } else { applied.forRoutes(route.route); } } }); } }; GatewayModule.routes = []; GatewayModule.globalMiddlewares = []; GatewayModule = __decorateClass([ (0, import_common.Module)({}) ], GatewayModule); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { GatewayModule }); //# sourceMappingURL=gateway.module.js.map