UNPKG

hono-json-response

Version:

A Hono middleware for standardized JSON responses

1 lines 1.35 kB
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=s(require(`hono/factory`));let l=function(e){return e[e.OK=2e3]=`OK`,e[e.UNAUTH=4e3]=`UNAUTH`,e[e.BIZERR=5e3]=`BIZERR`,e[e.SYSERR=5100]=`SYSERR`,e}({});const u={ok:{code:l.OK,defaultMsg:`Operation successful`},unauth:{code:l.UNAUTH,defaultMsg:`Unauthorized`},bizerr:{code:l.BIZERR,defaultMsg:`Business error`},syserr:{code:l.SYSERR,defaultMsg:`System error`}},d=(e,t={})=>{if(e=e||{},e.jr)throw Error(`jr method is a built-in system method and cannot be overridden`);return(0,c.createMiddleware)(async(n,r)=>{let{code:i=`code`,data:a=`data`,msg:o=`msg`}=t,s=Object.values(u).map(e=>e.code);for(let[t,n]of Object.entries(e))s.includes(n.code)&&delete u[t];let c={...u,...e};for(let[e,t]of Object.entries(c))t&&(n[e]=(e,r)=>n.json({[i]:t.code,[a]:e??null,[o]:r??t.defaultMsg??``}));n.jr=(e,t,r)=>n.json({[i]:e,[a]:t??null,[o]:r??``}),await r()})};exports.jsonResponse=d;