dates
This commit is contained in:
28
lib/serper-date-filters.ts
Normal file
28
lib/serper-date-filters.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
export type SerperAgeFilter = {
|
||||
maxAgeDays?: number
|
||||
minAgeDays?: number
|
||||
}
|
||||
|
||||
const normalizeDays = (value?: number) => {
|
||||
if (typeof value !== 'number') return undefined
|
||||
if (!Number.isFinite(value)) return undefined
|
||||
if (value <= 0) return undefined
|
||||
return Math.floor(value)
|
||||
}
|
||||
|
||||
export function appendSerperAgeModifiers(query: string, filters?: SerperAgeFilter): string {
|
||||
if (!filters) return query
|
||||
const modifiers: string[] = []
|
||||
const normalizedMax = normalizeDays(filters.maxAgeDays)
|
||||
const normalizedMin = normalizeDays(filters.minAgeDays)
|
||||
|
||||
if (typeof normalizedMax === 'number') {
|
||||
modifiers.push(`newer_than:${normalizedMax}d`)
|
||||
}
|
||||
if (typeof normalizedMin === 'number') {
|
||||
modifiers.push(`older_than:${normalizedMin}d`)
|
||||
}
|
||||
|
||||
if (modifiers.length === 0) return query
|
||||
return `${query} ${modifiers.join(' ')}`
|
||||
}
|
||||
Reference in New Issue
Block a user