@rescale/nemo
Version:
A middleware composition library for Next.js applications that allows you to organize and chain middleware functions based on URL patterns.
2 lines (1 loc) • 2.74 kB
JavaScript
import{a as u}from"./chunk-76CL4F3Q.js";import{a as s}from"./chunk-AEIWJISK.js";import{match as g}from"path-to-regexp";var c=Symbol.for("response"),h=Symbol.for("passThrough"),r=Symbol.for("waitUntil"),i=class{[r];[c]=null;[h]=!1;hasResponded=!1;bubbles=!1;cancelBubble=!1;cancelable=!1;composed=!1;currentTarget=null;defaultPrevented=!1;eventPhase=0;isTrusted=!0;returnValue=!0;srcElement=null;target=null;timeStamp=Date.now();type="fetch";NONE=0;CAPTURING_PHASE=1;AT_TARGET=2;BUBBLING_PHASE=3;constructor(e,t){this[r]=t?{kind:"external",function:t}:{kind:"internal",promises:[]}}composedPath(){throw new Error("Method not implemented.")}initEvent(e,t,n){throw new Error("Method not implemented.")}preventDefault(){throw new Error("Method not implemented.")}stopImmediatePropagation(){throw new Error("Method not implemented.")}stopPropagation(){throw new Error("Method not implemented.")}respondWith(e){if(this.hasResponded)throw new Error("FetchEvent.respondWith() has already been called");this.hasResponded=!0,this[c]=Promise.resolve(e)}passThroughOnException(){this[h]=!0}waitUntil(e){if(this.hasResponded)throw new Error("FetchEvent.waitUntil() cannot be called after response has been sent");if(this[r].kind==="external"){let t=this[r].function;return t(e)}else this[r].promises.push(e)}};function P(a){return a[r].kind==="internal"?Promise.all(a[r].promises).then(()=>{}):void 0}var d=class extends i{sourcePage;constructor(e){super(e.request,e.context?.waitUntil),this.sourcePage=e.page}},m=class a extends d{storage;currentMetadata;logger;constructor(e){super(e),this.storage=e.storage||new s(e.nemo),this.logger=new u(e.debug||!1)}log(...e){this.logger.log(...e)}error(...e){this.logger.error(...e)}warn(...e){this.logger.warn(...e)}setCurrentMetadata(e){this.currentMetadata=e}get params(){return this.currentMetadata?this.extractParamsFromPath(this.currentMetadata.routeKey,this.currentMetadata.pathname):{}}extractParamsFromPath(e,t){if(!e||!t)return{};try{let o=g(e,{end:!1})(t);return o?o.params||{}:{}}catch(n){return console.error("Error extracting URL parameters:",n),{}}}getParams(e){if(e&&"chain"in e){let t=e||this.currentMetadata;return t?this.extractParamsFromPath(t.routeKey,t.pathname):{}}if(e&&typeof e=="object"){if(e.routePattern&&e.pathname)return this.extractParamsFromPath(e.routePattern,e.pathname);let t=e.metadata||this.currentMetadata;return t?this.extractParamsFromPath(t.routeKey,t.pathname):{}}return this.currentMetadata?this.extractParamsFromPath(this.currentMetadata.routeKey,this.currentMetadata.pathname):{}}static from(e,t={},n,o){let l=e._raw||{};return new a({request:l.request,sourcePage:e.sourcePage,context:l.context,nemo:t,storage:n||new s(t),debug:o})}};export{i as a,P as b,d as c,m as d};