/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/kronos-http-routing-step@4.3.24/lib/http_routing.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";const step=require("kronos-step"),endpoint=require("kronos-endpoint"),{defineServiceConsumerProperties:defineServiceConsumerProperties}=require("kronos-service"),ks=require("kronos-service-koa"),httpRoutingStep=Object.assign({},step.Step,{name:"kronos-http-routing",description:"routes http requests to endpoints",initialize(e,t,i,r){r._listener={value:i.listener||"default-listener"},void 0!==i.mount&&(r.mount={value:i.mount})},wantsServiceRegistration(){for(const e in this.endpoints){if(void 0!==this.endpoints[e].serviceName)return!0}return!1},_start(){const e={listener:{type:"koa",name:this._listener}};return this.wantsServiceRegistration()&&(e.registry={name:"registry"}),defineServiceConsumerProperties(this,e,this.manager,!0).then((()=>{for(let e in this.endpoints){const t=this.endpoints[e],i=t.route;i?(this.listener.koa.use(i),t.serviceName&&this.registry&&this.registry.registerService(t.serviceName,{url:this.listener.url+t.path})):t.socket&&this.listener.addSocketEndpoint(t)}return Promise.resolve()}))},_stop(){for(let e in this.endpoints){const t=this.endpoints[e],i=t.route;i?(t.serviceName&&this.registry&&this.registry.unregisterService(t.serviceName,{url:this.listener.url+t.path}),this.listener.koa.delete(i)):t.socket&&this.listener.removeSocketEndpoint(t)}return Promise.resolve()},createEndpoint(e,t){let i,r=t.path||e;t.socket?i=new ks.SocketEndpoint(e,this,r):(void 0!==this.mount&&(r=this.mount+r),i=new ks.RouteSendEndpoint(e,this,r,t.method,t.serviceName)),this.addEndpoint(i),t.interceptors&&(i.interceptors=t.interceptors.map((e=>this.manager.createInterceptorInstanceFromConfig(e,i))))}});exports.registerWithManager=e=>e.registerStep(httpRoutingStep);
//# sourceMappingURL=/sm/dc3b5e886496a6d60d02bd683323f4d2478fe41f0a7b6ae0bcc9b91abf536198.map