Skip to content

Commit 3baee4f

Browse files
committed
feat(plugin): optimize json check and skip date parse inside json
#7
1 parent 4202422 commit 3baee4f

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

packages/plugin-serialize/src/serializer.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ export const defaultSerializer: Serializer = (parameter) => {
1616
}
1717
}
1818
}
19+
1920
const dateRegex = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?$/
21+
2022
export const defaultDeserializer: Deserializer = (parameter) => {
2123
if (skipTransform(parameter)) {
2224
return parameter
@@ -26,15 +28,15 @@ export const defaultDeserializer: Deserializer = (parameter) => {
2628
return parameter === 'true'
2729
} else if (dateRegex.test(parameter)) {
2830
return new Date(parameter)
29-
} else {
31+
} else if (parameter.startsWith('{') && parameter.endsWith('}')){
3032
try {
31-
return JSON.parse(parameter, (_k, v) => (typeof v === 'string' && dateRegex.exec(v)) ? new Date(v) : v)
32-
} catch (e) {
33-
return parameter
34-
}
33+
return JSON.parse(parameter)
34+
} catch (ignore) { }
3535
}
36+
return parameter
3637
}
3738
}
39+
3840
function skipTransform(parameter: unknown) {
3941
return parameter === undefined
4042
|| parameter === null

0 commit comments

Comments
 (0)