turbo_serializable 0.2.0
turbo_serializable: ^0.2.0 copied to clipboard
A serialization abstraction for the turbo ecosystem with multi-format support (JSON, YAML, Markdown, XML).
Changelog #
0.2.0 - 2026-01-12 #
Added #
- Layout-aware parsers for YAML, Markdown, XML, and JSON with metadata extraction
- Layout generators for YAML and Markdown that preserve original formatting
LayoutAwareParseResultmodel for returning both data and key-level metadataKeyMetadatamodel for storing per-key layout information- Format-specific metadata models:
YamlMeta,MarkdownMeta,XmlMeta,JsonMeta preserveLayoutparameter to all format conversion functions for round-trip fidelity- Support for YAML anchors, aliases, comments, and scalar styles preservation
- Support for XML attributes, CDATA, namespaces, and comments preservation
- Support for Markdown header levels, list styles, and formatting preservation
Changed #
- Format converter functions now properly extract and pass
keyMetafromLayoutAwareParseResult - Conversion functions pass
preserveLayoutthrough to output generators instead of forcingfalse - Improved documentation for
preserveLayoutparameter behavior
Technical Details #
- Layout parsers extract metadata during parsing without modifying data structure
- Layout generators use metadata to reconstruct original formatting
- Enables byte-for-byte round-trip fidelity when converting between formats
- Backward compatible:
preserveLayoutdefaults tofalsefor parsing,truefor generation
0.1.2 - 2026-01-11 #
Added #
TurboSerializableConfigclass for configuring serialization callbacks- Export of
TurboSerializableConfigfrom main library for easier imports - Case converter utility (
convertCase) for flexible string casing transformations - Case style support for serialization in
TurboSerializablewithCaseStyleenum TurboConstantsclass for centralized constant management- Enhanced
markdownToYamlfunction withmetaData,includeNulls, andprettyPrintparameters - Enhanced serialization methods with
includeNullsandprettyPrintoptions - Comprehensive architectural documentation and specifications
- Expanded testing guidelines and documentation structure
Changed #
- Refactored
TurboSerializableto useTurboSerializableConfigfor serialization method configuration - Standardized callback names in
TurboSerializableConfig:toJsonCallback→toJsontoYamlString→toYamltoMarkdownString→toMarkdown
- Primary format is now automatically determined from provided callbacks (priority: json > yaml > markdown > xml)
- Updated
toXmlmethod to includeincludeMetaDataparameter - Renamed
mapToXmltojsonToXmlfor consistency in XML conversion
Fixed #
- Function naming consistency in XML converter (
mapToXml→jsonToXml)
Technical Details #
- Introduced
HasToJsoninterface for metadata types that can be serialized to JSON - Removed deprecated
toJsonImplmethods in favor of callback-based implementations - Enhanced documentation to guide users on the new configuration setup
- Ensured backward compatibility with existing serialization methods where applicable
0.1.1 - 2026-01-11 #
Changed #
- Rewrote README with Library/Package format: badges, features list, API reference tables, focused examples
- Reduced README from 329 to 90 lines (73% reduction)
0.1.0 - 2026-01-11 #
Added #
- Standalone format converter functions:
jsonToYaml,jsonToMarkdown,jsonToXml,yamlToJson,yamlToMarkdown,yamlToXml,markdownToJson,markdownToYaml,markdownToXml,xmlToJson,xmlToYaml,xmlToMarkdown jsonToXmlandxmlToMapfunctions for direct JSON/XML conversion- Markdown-to-JSON parsing with YAML frontmatter support
- JSON-to-Markdown conversion with header-based format (keys become
##,###,####,**bold**at level 5+) - Title Case conversion for markdown headers
- PascalCase option for XML element names
- Metadata support for all format conversions
- Comprehensive integration test suite with 284 tests
- Edge case sample files covering: deep nesting, unicode/emoji, empty collections, YAML anchors/aliases, XML declarations, and format-specific features
Changed #
- Removed deprecated
from*instance methods (use standalone converter functions instead)
Fixed #
- XML converter uses
XmlText.valueinstead of deprecatedXmlData.text
0.0.1 - 2026-01-11 #
Added #
- Initial release
TurboSerializable<M>abstract class with optional serialization methods and typed metadata supportTurboSerializableId<T, M>with typed identifier and metadata support- Optional
metaDatafield for frontmatter and auxiliary data - Supported formats: JSON, YAML, Markdown, XML