69 lines
1.3 KiB
TypeScript
69 lines
1.3 KiB
TypeScript
// ===================
|
|
// ©AngelaMos | 2026
|
|
// config.ts
|
|
// ===================
|
|
const API_VERSION = 'v1'
|
|
|
|
export const API_ENDPOINTS = {
|
|
USERS: {
|
|
BASE: `/${API_VERSION}/users`,
|
|
BY_ID: (id: string) => `/${API_VERSION}/users/${id}`,
|
|
},
|
|
} as const
|
|
|
|
export const QUERY_KEYS = {
|
|
USERS: {
|
|
ALL: ['users'] as const,
|
|
BY_ID: (id: string) => [...QUERY_KEYS.USERS.ALL, 'detail', id] as const,
|
|
},
|
|
} as const
|
|
|
|
export const ROUTES = {
|
|
HOME: '/',
|
|
DASHBOARD: '/dashboard',
|
|
SETTINGS: '/settings',
|
|
} as const
|
|
|
|
export const STORAGE_KEYS = {
|
|
UI: 'ui-storage',
|
|
} as const
|
|
|
|
export const QUERY_CONFIG = {
|
|
STALE_TIME: {
|
|
USER: 1000 * 60 * 5,
|
|
STATIC: Infinity,
|
|
FREQUENT: 1000 * 30,
|
|
},
|
|
GC_TIME: {
|
|
DEFAULT: 1000 * 60 * 30,
|
|
LONG: 1000 * 60 * 60,
|
|
},
|
|
RETRY: {
|
|
DEFAULT: 3,
|
|
NONE: 0,
|
|
},
|
|
} as const
|
|
|
|
export const HTTP_STATUS = {
|
|
OK: 200,
|
|
CREATED: 201,
|
|
NO_CONTENT: 204,
|
|
BAD_REQUEST: 400,
|
|
UNAUTHORIZED: 401,
|
|
FORBIDDEN: 403,
|
|
NOT_FOUND: 404,
|
|
CONFLICT: 409,
|
|
TOO_MANY_REQUESTS: 429,
|
|
INTERNAL_SERVER: 500,
|
|
} as const
|
|
|
|
export const PAGINATION = {
|
|
DEFAULT_PAGE: 1,
|
|
DEFAULT_SIZE: 20,
|
|
MAX_SIZE: 100,
|
|
} as const
|
|
|
|
export type ApiEndpoint = typeof API_ENDPOINTS
|
|
export type QueryKey = typeof QUERY_KEYS
|
|
export type Route = typeof ROUTES
|