69 lines
1.4 KiB
TypeScript
69 lines
1.4 KiB
TypeScript
import type { EventHandlerRequest, H3Event } from 'h3';
|
|
|
|
export function useResponseSuccess<T = any>(data: T) {
|
|
return {
|
|
code: 0,
|
|
data,
|
|
error: null,
|
|
message: 'ok',
|
|
};
|
|
}
|
|
|
|
export function usePageResponseSuccess<T = any>(
|
|
page: number | string,
|
|
pageSize: number | string,
|
|
list: T[],
|
|
{ message = 'ok' } = {},
|
|
) {
|
|
const pageData = pagination(
|
|
Number.parseInt(`${page}`),
|
|
Number.parseInt(`${pageSize}`),
|
|
list,
|
|
);
|
|
|
|
return {
|
|
...useResponseSuccess({
|
|
items: pageData,
|
|
total: list.length,
|
|
}),
|
|
message,
|
|
};
|
|
}
|
|
|
|
export function useResponseError(message: string, error: any = null) {
|
|
return {
|
|
code: -1,
|
|
data: null,
|
|
error,
|
|
message,
|
|
};
|
|
}
|
|
|
|
export function forbiddenResponse(
|
|
event: H3Event<EventHandlerRequest>,
|
|
message = 'Forbidden Exception',
|
|
) {
|
|
setResponseStatus(event, 403);
|
|
return useResponseError(message, message);
|
|
}
|
|
|
|
export function unAuthorizedResponse(event: H3Event<EventHandlerRequest>) {
|
|
setResponseStatus(event, 401);
|
|
return useResponseError('Unauthorized Exception', 'Unauthorized Exception');
|
|
}
|
|
|
|
export function sleep(ms: number) {
|
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
}
|
|
|
|
export function pagination<T = any>(
|
|
pageNo: number,
|
|
pageSize: number,
|
|
array: T[],
|
|
): T[] {
|
|
const offset = (pageNo - 1) * Number(pageSize);
|
|
return offset + Number(pageSize) >= array.length
|
|
? array.slice(offset)
|
|
: array.slice(offset, offset + Number(pageSize));
|
|
}
|