@sigiljs/sigil
Version:
TypeScript-first Node.js HTTP framework offering schema-driven routing, modifier-based middleware, plugin extensibility, and flexible response templating
2 lines (1 loc) • 1.25 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("@sigiljs/pathfinder"),o=require("@sigiljs/seal"),n=require("./route-requests.js");class u extends n.default{constructor(e){const t=new s.Pathfinder,a=e?.modifiers??[];super(a,t,e)}body(e,t){let a=Array.isArray(e)?e[0]:e,r=Array.isArray(e)&&e[1]?e[1]:t;return this.$cloneWithSchema("body",a,r)}headers(e){let t=Array.isArray(e)?e[0]:e;return this.$cloneWithSchema("headers",t)}query(e){let t=Array.isArray(e)?e[0]:e;return this.$cloneWithSchema("query",t)}params(e){return this.$cloneWithSchema("params",Array.isArray(e)?e[0]:e)}$cloneWithSchema(e,t,a){const r=this.$applyMetadata(o.seal.object(t),a),i=Object.assign(Object.create(Object.getPrototypeOf(this)),this);return i.__initialParent=this.__initialParent??this,i.__$schemas={...this.__$schemas,[e]:r},i}$applyMetadata(e,t){if(!t)return e;for(const[a,r]of Object.entries(t))switch(a){case"name":e.name(r);break;case"description":e.description(r);break;case"example":e.example(r);break;case"default":e.default(r);break;case"deprecated":e.deprecated;break;case"externalDocs":e.externalDocs(r);break;case"allowUnknown":r===!0&&e.loose;break}return e}}exports.default=u;