1 | import type { Serialization } from 'async-call-rpc'
|
2 | import type { serialize as S, deserialize as D } from 'bson'
|
3 | export const BSON_Serialization = ({
|
4 | deserialize,
|
5 | serialize,
|
6 | }: {
|
7 | serialize: typeof S
|
8 | deserialize: typeof D
|
9 | }): Serialization => ({
|
10 | async deserialization(data: unknown) {
|
11 | if (data instanceof Blob) data = await data.arrayBuffer()
|
12 | if (data instanceof ArrayBuffer) data = new Uint8Array(data)
|
13 | return deserialize(data as any)
|
14 | },
|
15 | serialization(data: any) {
|
16 | return serialize(data)
|
17 | },
|
18 | })
|