4 ms·
Codables – Swift-inspired, declarative JSON serialization
- pie6k 11mo agoHey! Why yet another JSON serialization library? We already have SuperJSON, right? Yes. And SuperJSON is great; I use it a lot. However, things got tricky for me when I had really complex data types, covered with many model classes, often deeply nested and referencing each other, where I needed to serialize it all from/to JSON and save it on the disk. I had to essentially maintain two formats of my data - "serializable data" and TypeScript classes matching this data. It was quite a pain. I've tried to solve it with modern decorators, making the entire process more declarative and having way less boilerplate. Happy to hear your feedback! Interactive playground - https://codableslib.com/playground https://codableslib.com/playground Github: https://github.com/pie6k/codables https://github.com/pie6k/codables
- jb1991 11mo agoSince it’s your own project, would probably benefit from the “Show HN” title.
- boxed 11mo ago"for typescript" in the title would have been a good idea
- trymas 11mo agoAlso - what's so "Swift-inspired"? There's not a single mention of Swift in README.
- secretsatan 11mo agoIt’s based on Swift’s codable protocol: https://developer.apple.com/documentation/swift/codable https://developer.apple.com/documentation/swift/codable
- boxed 11mo agoVery loosely. Swift Codable doesn't require you to annotate every field for example.
- happytoexplain 11mo agoCapturing types in the JSON means you need this tool at both ends. E.g. you couldn't use this to serialize data to send to a typical web API. Is there no way to use TS to declare the type at decode time, like you would in Swift and other strongly typed languages? I'm not super familiar with TS.