39 lines
861 B
JavaScript
39 lines
861 B
JavaScript
export function normalizePage(rawValue) {
|
|
const parsed = Number(rawValue)
|
|
return Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : 1
|
|
}
|
|
|
|
export function normalizePageSize(rawValue) {
|
|
const parsed = Number(rawValue)
|
|
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
return 20
|
|
}
|
|
return Math.min(100, Math.floor(parsed))
|
|
}
|
|
|
|
export function normalizeDateQuery(rawValue, endOfDay = false) {
|
|
const normalized = String(rawValue || '').trim()
|
|
|
|
if (!normalized) {
|
|
return ''
|
|
}
|
|
|
|
if (/^\d{4}-\d{2}-\d{2}$/.test(normalized)) {
|
|
return endOfDay ? `${normalized}T23:59:59.999Z` : `${normalized}T00:00:00.000Z`
|
|
}
|
|
|
|
return normalized
|
|
}
|
|
|
|
export function safeParseJson(rawText) {
|
|
if (rawText && typeof rawText === 'object') {
|
|
return rawText
|
|
}
|
|
|
|
try {
|
|
return JSON.parse(String(rawText || '{}'))
|
|
} catch {
|
|
return {}
|
|
}
|
|
}
|