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 6.08 kB
'use strict';var zaionsToolKit=require('zaions-tool-kit'),Q=require('cors'),express=require('express'),expressRateLimit=require('express-rate-limit'),zod=require('zod');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Q__default=/*#__PURE__*/_interopDefault(Q);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=zaionsToolKit.ztkMessages.general.success,data:t=null,dataList:o=null,authToken:l=null,errors:u=null,code:a=zaionsToolKit.ResponseCodeEnum.success,status:d=zaionsToolKit.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=zaionsToolKit.ztkMessages.general.success,data:r=null,dataList:t=null,authToken:o=null,code:l=zaionsToolKit.ResponseCodeEnum.success,status:u=zaionsToolKit.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=zaionsToolKit.ztkMessages.general.failed,errors:r=null,code:t=zaionsToolKit.ResponseCodeEnum.failed,status:o=zaionsToolKit.ResponseStatusEnum.failed}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},A=(e,s)=>{let{message:n=zaionsToolKit.ztkMessages.general.badRequest,errors:r=null,code:t=zaionsToolKit.ResponseCodeEnum.badRequest,status:o=zaionsToolKit.ResponseStatusEnum.badRequest}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},q=(e,s)=>{let{message:n=zaionsToolKit.ztkMessages.general.unAuthenticated,errors:r=null,code:t=zaionsToolKit.ResponseCodeEnum.unAuthenticated,status:o=zaionsToolKit.ResponseStatusEnum.unAuthenticated}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},O=(e,s)=>{let{message:n=zaionsToolKit.ztkMessages.general.unAuthorized,errors:r=null,code:t=zaionsToolKit.ResponseCodeEnum.unAuthorized,status:o=zaionsToolKit.ResponseStatusEnum.unAuthorized}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},Z=(e,s)=>{let{message:n=zaionsToolKit.ztkMessages.general.notFound,errors:r=null,code:t=zaionsToolKit.ResponseCodeEnum.notFound,status:o=zaionsToolKit.ResponseStatusEnum.notFound}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},y=(e,s)=>{let{message:n=zaionsToolKit.ztkMessages.general.tooManyRequests,errors:r=null,code:t=zaionsToolKit.ResponseCodeEnum.tooManyRequests,status:o=zaionsToolKit.ResponseStatusEnum.tooManyRequests}=s||{};return p(e,{success:!1,message:n,data:null,errors:r,code:t,status:o})},S=(e,s)=>{let{message:n=zaionsToolKit.ztkMessages.general.itemExists,errors:r=null,code:t=zaionsToolKit.ResponseCodeEnum.itemExists,status:o=zaionsToolKit.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=expressRateLimit.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__default.default({origin:"*"})),r&&e.use(express.urlencoded()),n&&e.use(express.json());},ne=e=>{e.use(/(.*)/,(s,n)=>{w(n,{code:zaionsToolKit.ResponseCodeEnum.invalidRequest,status:zaionsToolKit.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=zod.z.object({name:zod.z.string().trim().min(1,{message:"Name is Required."}).max(255),email:zod.z.string().email().max(255),password:zod.z.string().min(6).max(30),passwordConfirmation:zod.z.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=zod.z.object({email:zod.z.string().email().max(255),password:zod.z.string().min(6).max(30)});exports.applyMiddlewaresOnApp=se;exports.configureZETK=J;exports.getExpressRateLimiterOptions=E;exports.invalidRequestHandler=ne;exports.isApiResponse=C;exports.loginRequestValidationSchema=H;exports.registerRequestValidationSchema=v;exports.sendApiFailedResponse=w;exports.sendApiResponse=p;exports.sendApiSuccessResponse=h;exports.sendBadRequestResponse=A;exports.sendItemExistsErrorResponse=S;exports.sendNotFoundErrorResponse=Z;exports.sendTooManyRequestsErrorResponse=y;exports.sendUnAuthenticatedErrorResponse=q;exports.sendUnAuthorizedErrorResponse=O;exports.setExpressRateLimiterOptions=x;exports.validateRequestInputData=I;//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map