Spaces:
Running
Running
Commit
·
a916ce0
1
Parent(s):
ceebe5b
fix: serializer
Browse files- .sc.png +0 -0
- src/helpers/serialize.ts +4 -0
.sc.png
ADDED
![]() |
src/helpers/serialize.ts
CHANGED
@@ -17,10 +17,14 @@ export const serialize = <T>(
|
|
17 |
| Document[],
|
18 |
serializer: new () => T
|
19 |
): T | T[] => {
|
|
|
|
|
20 |
// If the serializable object is a Document, convert it to a JSON object.
|
21 |
if (serializable.hasOwnProperty("toJSON"))
|
22 |
serializable = (serializable as Document).toJSON();
|
23 |
|
|
|
|
|
24 |
// If the serializable object is an array, serialize each item in the array.
|
25 |
if (Array.isArray(serializable)) {
|
26 |
return serializable.map((item) => serialize(item, serializer)) as T[];
|
|
|
17 |
| Document[],
|
18 |
serializer: new () => T
|
19 |
): T | T[] => {
|
20 |
+
if (!serializable) return serializable as T | T[];
|
21 |
+
|
22 |
// If the serializable object is a Document, convert it to a JSON object.
|
23 |
if (serializable.hasOwnProperty("toJSON"))
|
24 |
serializable = (serializable as Document).toJSON();
|
25 |
|
26 |
+
serializable = JSON.parse(JSON.stringify(serializable));
|
27 |
+
|
28 |
// If the serializable object is an array, serialize each item in the array.
|
29 |
if (Array.isArray(serializable)) {
|
30 |
return serializable.map((item) => serialize(item, serializer)) as T[];
|