Skip to content

Commit 3963c53

Browse files
committed
fix: Provide equality function for date parsers
1 parent 16545c7 commit 3963c53

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

packages/nuqs/src/parsers.ts

+10-3
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ export const parseAsBoolean = createParser({
185185
serialize: v => (v ? 'true' : 'false')
186186
})
187187

188+
function compareDates(a: Date, b: Date) {
189+
return a.valueOf() === b.valueOf()
190+
}
191+
188192
/**
189193
* Querystring encoded as the number of milliseconds since epoch,
190194
* and returned as a Date object.
@@ -197,7 +201,8 @@ export const parseAsTimestamp = createParser({
197201
}
198202
return new Date(ms)
199203
},
200-
serialize: (v: Date) => v.valueOf().toString()
204+
serialize: (v: Date) => v.valueOf().toString(),
205+
eq: compareDates
201206
})
202207

203208
/**
@@ -212,7 +217,8 @@ export const parseAsIsoDateTime = createParser({
212217
}
213218
return date
214219
},
215-
serialize: (v: Date) => v.toISOString()
220+
serialize: (v: Date) => v.toISOString(),
221+
eq: compareDates
216222
})
217223

218224
/**
@@ -231,7 +237,8 @@ export const parseAsIsoDate = createParser({
231237
}
232238
return date
233239
},
234-
serialize: (v: Date) => v.toISOString().slice(0, 10)
240+
serialize: (v: Date) => v.toISOString().slice(0, 10),
241+
eq: compareDates
235242
})
236243

237244
/**

0 commit comments

Comments
 (0)