theme update latest project

This commit is contained in:
Abin Toppo
2026-02-16 10:41:38 +05:30
parent bd7dbd864c
commit a98e0b6cdd
75 changed files with 10173 additions and 7915 deletions
+69
View File
@@ -0,0 +1,69 @@
import { AxiosError } from 'axios';
type ApiErrorPayload = {
message?: string;
error?: string;
status?: string;
statusCode?: number;
data?: unknown;
};
export const logGroupRequest = (method: string, url: string, payload?: unknown) => {
console.log(`[HOOK_API][${method}] URL:`, url);
console.log(`[HOOK_API][${method}] PAYLOAD:`, payload ?? null);
};
export const logGroupResponse = (method: string, url: string, response: unknown) => {
const meta = response as { statusCode?: number; status?: string; message?: string };
console.log(`[HOOK_API][${method}] SUCCESS URL:`, url);
console.log(`[HOOK_API][${method}] SUCCESS META:`, {
statusCode: meta?.statusCode ?? null,
status: meta?.status ?? null,
message: meta?.message ?? null,
});
console.log(`[HOOK_API][${method}] SUCCESS RESPONSE:`, response);
};
export const logGroupError = (method: string, url: string, error: unknown) => {
const axiosError = error as AxiosError<ApiErrorPayload>;
console.error(
`[HOOK_API][${method}] ERROR RESPONSE:`,
axiosError?.response?.data ?? axiosError?.message ?? error
);
};
export const getApiErrorMessage = (error: unknown) => {
const axiosError = error as AxiosError<ApiErrorPayload>;
const apiMessage =
axiosError?.response?.data?.message ||
axiosError?.response?.data?.error ||
axiosError?.message;
return apiMessage || 'An unexpected error occurred';
};
export const normalizeApiError = (error: unknown) => {
const normalized = new Error(getApiErrorMessage(error));
(normalized as Error & { originalError?: unknown }).originalError = error;
return normalized;
};
export const resolveMutationRequest = <T>(resource: string, payload: T) => {
const rawPayload = payload as unknown as { resource?: string; payload?: unknown };
const canUseDynamicResource =
(!resource || resource.trim() === '') &&
typeof rawPayload?.resource === 'string' &&
rawPayload.resource.trim() !== '';
if (canUseDynamicResource) {
return {
url: rawPayload.resource as string,
body: rawPayload.payload ?? payload,
};
}
return {
url: resource,
body: payload,
};
};