Skip to content

Commit deb2fab

Browse files
committed
feat(ssr): revive TimeStamp and GeoPoint
1 parent c8fd4b6 commit deb2fab

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

packages/nuxt/src/runtime/payload-plugin.ts

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Timestamp, GeoPoint } from 'firebase/firestore'
12
import {
23
definePayloadPlugin,
34
definePayloadReducer,
@@ -15,5 +16,17 @@ export default definePayloadPlugin(() => {
1516
typeof data.toJSON === 'function' &&
1617
JSON.stringify(data.toJSON())
1718
)
18-
definePayloadReviver('JSONifiable', (data: string) => JSON.parse(data))
19+
definePayloadReviver('JSONifiable', (data: string) => {
20+
const parsed = JSON.parse(data)
21+
22+
if ('seconds' in parsed && 'nanoseconds' in parsed) {
23+
return new Timestamp(parsed.seconds, parsed.nanoseconds)
24+
}
25+
26+
if ('latitude' in parsed && 'longitude' in parsed) {
27+
return new GeoPoint(parsed.latitude, parsed.longitude)
28+
}
29+
30+
return parsed
31+
})
1932
})

0 commit comments

Comments
 (0)