@@ -272,13 +272,13 @@ extensionCodec.register({
272
272
type: SET_EXT_TYPE ,
273
273
encode : (object : unknown ): Uint8Array | null => {
274
274
if (object instanceof Set ) {
275
- return encode ([... object ]);
275
+ return encode ([... object ], { extensionCodec } );
276
276
} else {
277
277
return null ;
278
278
}
279
279
},
280
280
decode : (data : Uint8Array ) => {
281
- const array = decode (data ) as Array <unknown >;
281
+ const array = decode (data , { extensionCodec } ) as Array <unknown >;
282
282
return new Set (array );
283
283
},
284
284
});
@@ -289,13 +289,13 @@ extensionCodec.register({
289
289
type: MAP_EXT_TYPE ,
290
290
encode : (object : unknown ): Uint8Array => {
291
291
if (object instanceof Map ) {
292
- return encode ([... object ]);
292
+ return encode ([... object ], { extensionCodec } );
293
293
} else {
294
294
return null ;
295
295
}
296
296
},
297
297
decode : (data : Uint8Array ) => {
298
- const array = decode (data ) as Array <[unknown , unknown ]>;
298
+ const array = decode (data , { extensionCodec } ) as Array <[unknown , unknown ]>;
299
299
return new Map (array );
300
300
},
301
301
});
@@ -304,7 +304,9 @@ const encoded = encode([new Set<any>(), new Map<any, any>()], { extensionCodec }
304
304
const decoded = decode (encoded , { extensionCodec });
305
305
```
306
306
307
- Not that extension types for custom objects must be ` [0, 127] ` , while ` [-1, -128] ` is reserved for MessagePack itself.
307
+ Ensure you include your extensionCodec in any recursive encode and decode statements!
308
+
309
+ Note that extension types for custom objects must be ` [0, 127] ` , while ` [-1, -128] ` is reserved for MessagePack itself.
308
310
309
311
#### ExtensionCodec context
310
312
0 commit comments