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
150 lines (139 loc) • 5.13 kB
text/typescript
import { Response, Express, Request } from 'express';
import { Options, RateLimitRequestHandler } from 'express-rate-limit';
import { RoleEnum, PermissionEnum, FormFieldsEnum, ResponseCodeEnum, ResponseStatusEnum } from 'zaions-tool-kit';
import { ZodObject, ZodEffects, z } from 'zod';
interface IExpressRateLimiterOptions extends Partial<Options> {
}
interface IConfigureZETKOptions {
rateLimiterOptions?: IExpressRateLimiterOptions;
}
interface IApiResponse extends Response<any, Record<string, any>> {
}
interface IAuthCheckResultGeneric<A, B> {
user: A;
userRecord: B;
isAdmin: boolean;
isPlayer: boolean;
isEngager: boolean;
userId: string;
userEmail: string;
userPhoneNumber: string;
userRole: RoleEnum;
userPermissions: PermissionEnum[];
[FormFieldsEnum.uniqueId]?: string;
}
declare const configureZETK: (options: IConfigureZETKOptions) => void;
interface IApplyMiddlewareOptions {
applyCors?: boolean;
expressJson?: boolean;
expressUrlEncoded?: boolean;
applyRateLimiter?: boolean;
expressRateLimiter?: RateLimitRequestHandler;
}
declare const applyMiddlewaresOnApp: (expressApp: Express, { applyCors, expressJson, expressUrlEncoded, applyRateLimiter, expressRateLimiter, }: IApplyMiddlewareOptions) => void;
declare const invalidRequestHandler: (app: Express) => void;
declare const sendApiResponse: (res: Response, options?: {
success?: boolean;
message?: string;
data?: unknown;
dataList?: unknown;
authToken?: unknown;
errors?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const sendApiSuccessResponse: (res: Response, options?: {
message?: string;
data?: unknown;
dataList?: unknown;
authToken?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const sendApiFailedResponse: (res: Response, options?: {
message?: string;
errors?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const sendBadRequestResponse: (res: Response, options?: {
message?: string;
errors?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const sendUnAuthenticatedErrorResponse: (res: Response, options?: {
message?: string;
errors?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const sendUnAuthorizedErrorResponse: (res: Response, options?: {
message?: string;
errors?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const sendNotFoundErrorResponse: (res: Response, options?: {
message?: string;
errors?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const sendTooManyRequestsErrorResponse: (res: Response, options?: {
message?: string;
errors?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const sendItemExistsErrorResponse: (res: Response, options?: {
message?: string;
errors?: unknown;
code?: ResponseCodeEnum;
status?: ResponseStatusEnum;
}) => Response;
declare const isApiResponse: (value: any) => value is Response;
declare const getExpressRateLimiterOptions: () => IExpressRateLimiterOptions | null;
declare const setExpressRateLimiterOptions: (_options: IExpressRateLimiterOptions) => void;
declare const validateRequestInputData: <T extends object>({ req, res, validationSchema, }: {
req: Request;
validationSchema: ZodObject<any> | ZodEffects<any>;
res: Response;
}) => Promise<T | Response>;
declare const registerRequestValidationSchema: z.ZodEffects<z.ZodObject<{
name: z.ZodString;
email: z.ZodString;
password: z.ZodString;
passwordConfirmation: z.ZodString;
}, 'strip', z.ZodTypeAny, {
name: string;
email: string;
password: string;
passwordConfirmation: string;
}, {
name: string;
email: string;
password: string;
passwordConfirmation: string;
}>, {
name: string;
email: string;
password: string;
passwordConfirmation: string;
}, {
name: string;
email: string;
password: string;
passwordConfirmation: string;
}>;
declare const loginRequestValidationSchema: z.ZodObject<{
email: z.ZodString;
password: z.ZodString;
}, 'strip', z.ZodTypeAny, {
email: string;
password: string;
}, {
email: string;
password: string;
}>;
export { type IApiResponse, type IApplyMiddlewareOptions, type IAuthCheckResultGeneric, type IConfigureZETKOptions, type IExpressRateLimiterOptions, applyMiddlewaresOnApp, configureZETK, getExpressRateLimiterOptions, invalidRequestHandler, isApiResponse, loginRequestValidationSchema, registerRequestValidationSchema, sendApiFailedResponse, sendApiResponse, sendApiSuccessResponse, sendBadRequestResponse, sendItemExistsErrorResponse, sendNotFoundErrorResponse, sendTooManyRequestsErrorResponse, sendUnAuthenticatedErrorResponse, sendUnAuthorizedErrorResponse, setExpressRateLimiterOptions, validateRequestInputData };