UNPKG

zaions-express-tool-kit

Version:

Zaions Express Tool Kit, this is for expressJs/Typescript projects created by Zaions Dev Team (https://zaions.com), We hope you will love this and all other packages we have developed for you, please do react out if you face any issue in packages we deliv

2 lines 5.46 kB
import {ztkMessages,ResponseCodeEnum,ResponseStatusEnum}from'zaions-tool-kit';import Q from'cors';import {urlencoded,json}from'express';import {rateLimit}from'express-rate-limit';import {z as z$1}from'zod';var B=Object.defineProperty,K=Object.defineProperties;var N=Object.getOwnPropertyDescriptors;var T=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var D=(e,s,n)=>s in e?B(e,s,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[s]=n,f=(e,s)=>{for(var n in s||(s={}))G.call(s,n)&&D(e,n,s[n]);if(T)for(var n of T(s))P.call(s,n)&&D(e,n,s[n]);return e},M=(e,s)=>K(e,N(s));var L=(e,s,n)=>new Promise((r,t)=>{var o=a=>{try{u(n.next(a));}catch(d){t(d);}},l=a=>{try{u(n.throw(a));}catch(d){t(d);}},u=a=>a.done?r(a.value):Promise.resolve(a.value).then(o,l);u((n=n.apply(e,s)).next());});var b=null,E=()=>b,x=e=>{b=f({},e);};var J=e=>{let{rateLimiterOptions:s}=e;s&&x(s);};var p=(e,s)=>{let{success:n=!0,message:r=ztkMessages.general.success,data:t=null,dataList:o=null,authToken:l=null,errors:u=null,code:a=ResponseCodeEnum.success,status:d=ResponseStatusEnum.success}=s||{};return e.status(d).json({success:n,message:r,result:{data:t,dataList:o,authToken:l},errors:u,code:a,status:d})},h=(e,s)=>{let{message:n=ztkMessages.general.success,data:r=null,dataList:t=null,authToken:o=null,code:l=ResponseCodeEnum.success,status:u=ResponseStatusEnum.success}=s||{};return p(e,{success:!0,message:n,data:r,dataList:t,authToken:o,errors:null,code:l,status:u})},w=(e,s)=>{let{message:n=ztkMessages.general.failed,errors:r=null,code:t=ResponseCodeEnum.failed,status:o=ResponseStatusEnum.failed}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},A=(e,s)=>{let{message:n=ztkMessages.general.badRequest,errors:r=null,code:t=ResponseCodeEnum.badRequest,status:o=ResponseStatusEnum.badRequest}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},q=(e,s)=>{let{message:n=ztkMessages.general.unAuthenticated,errors:r=null,code:t=ResponseCodeEnum.unAuthenticated,status:o=ResponseStatusEnum.unAuthenticated}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},O=(e,s)=>{let{message:n=ztkMessages.general.unAuthorized,errors:r=null,code:t=ResponseCodeEnum.unAuthorized,status:o=ResponseStatusEnum.unAuthorized}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},Z=(e,s)=>{let{message:n=ztkMessages.general.notFound,errors:r=null,code:t=ResponseCodeEnum.notFound,status:o=ResponseStatusEnum.notFound}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},y=(e,s)=>{let{message:n=ztkMessages.general.tooManyRequests,errors:r=null,code:t=ResponseCodeEnum.tooManyRequests,status:o=ResponseStatusEnum.tooManyRequests}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},S=(e,s)=>{let{message:n=ztkMessages.general.itemExists,errors:r=null,code:t=ResponseCodeEnum.itemExists,status:o=ResponseStatusEnum.itemExists}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})};var i=E(),F,j,z,U,ee=rateLimit({windowMs:(F=i==null?void 0:i.windowMs)!=null?F:15*60*1e3,limit:(j=i==null?void 0:i.limit)!=null?j:100,standardHeaders:(z=i==null?void 0:i.standardHeaders)!=null?z:"draft-7",legacyHeaders:(U=i==null?void 0:i.legacyHeaders)!=null?U:!1,keyGenerator:e=>{let s=e.headers?e.headers["x-forwarded-for"]:e.socket.remoteAddress;return s?s.toString():""},handler:(e,s)=>s.status(429).json({error:"Too many requests, please try again later."})}),se=(e,{applyCors:s,expressJson:n,expressUrlEncoded:r,applyRateLimiter:t=!0,expressRateLimiter:o})=>{t&&(o?e.use(o):e.use(ee)),s&&e.use(Q({origin:"*"})),r&&e.use(urlencoded()),n&&e.use(json());},ne=e=>{e.use(/(.*)/,(s,n)=>{w(n,{code:ResponseCodeEnum.invalidRequest,status:ResponseStatusEnum.invalidRequest});});};var C=e=>e&&typeof e=="object"&&"statusCode"in e&&"statusMessage"in e;var I=r=>L(void 0,[r],function*({req:e,res:s,validationSchema:n}){var l,u,a,d,k;let t=f({},e.body),o;try{n.parse(t);}catch(V){o=V;}return (l=o==null?void 0:o.formErrors)!=null&&l.fieldErrors?A(s,{message:'Error occurred in "validateRequestInputData" helper function.',errors:M(f({},(a=(u=o==null?void 0:o.formErrors)==null?void 0:u.fieldErrors)!=null?a:{}),{formErrors:[...(k=(d=o==null?void 0:o.formErrors)==null?void 0:d.formErrors)!=null?k:[]]})}):t});var v=z$1.object({name:z$1.string().trim().min(1,{message:"Name is Required."}).max(255),email:z$1.string().email().max(255),password:z$1.string().min(6).max(30),passwordConfirmation:z$1.string().min(6).max(30)}).superRefine((e,s)=>{e.passwordConfirmation!==e.password&&s.addIssue({code:"custom",message:"The passwords did not match",path:["passwordConfirmation"]});}),H=z$1.object({email:z$1.string().email().max(255),password:z$1.string().min(6).max(30)});export{se as applyMiddlewaresOnApp,J as configureZETK,E as getExpressRateLimiterOptions,ne as invalidRequestHandler,C as isApiResponse,H as loginRequestValidationSchema,v as registerRequestValidationSchema,w as sendApiFailedResponse,p as sendApiResponse,h as sendApiSuccessResponse,A as sendBadRequestResponse,S as sendItemExistsErrorResponse,Z as sendNotFoundErrorResponse,y as sendTooManyRequestsErrorResponse,q as sendUnAuthenticatedErrorResponse,O as sendUnAuthorizedErrorResponse,x as setExpressRateLimiterOptions,I as validateRequestInputData};//# sourceMappingURL=index.mjs.map //# sourceMappingURL=index.mjs.map