flatted is a compact serialization library for JavaScript data that contains circular or repeated object references. It provides parse and stringify functions with an interface modeled after the native JSON API. During serialization, objects, arrays, and strings are flattened into indexed entries, allowing the parser to rebuild the original reference graph later. The package also includes toJSON and fromJSON helpers for classes that need recursive data to survive standard JSON workflows. It supports ESM, CommonJS, and CDN delivery, with related implementations available for PHP, Python, and Go. Flatted only handles JSON-compatible values, so specialized objects and internal runtime resources require a different serialization strategy.
Features
- Circular reference serialization
- Repeated reference preservation
- JSON-style parse and stringify APIs
- Replacer, reviver, and spacing parameters
- toJSON and fromJSON helpers
- ESM, CommonJS, and CDN compatibility