osum_serializable 0.0.5 copy "osum_serializable: ^0.0.5" to clipboard
osum_serializable: ^0.0.5 copied to clipboard

Serialize almost everything you ever need! Supports serializing MaterialColor, Color, IconData, Size, Locale, UuidValue, DateTime, Directory, File, Offset, Duration, and many more.

osum_serializable #

osum_serializable

The goal is to serialize almost everything you ever need! json_serializable is an amazing package to serialize classes but cannot serialize complex types. This package provides convertors for these types. Check the supported types to know more.

Supported types #

Type Support Type Support
Color MaterialColor
Offset Size
Directory File
DateTime IconData
Duration UuidValue
Locale

How it works #

Code Json

How to use? #

Install #

osum_serializable depends on build_runner and json_serializable to building the toJson and fromJson implementations. To install run these commands in your terminal.

flutter pub add --dev build_runner
flutter pub add --dev json_serializable
flutter pub add osum_serializable

Usage #

To use the convertors, simply postfix the data type name with Convertor and call the annotation.

@{DATATYPE}Converter()
final {DATATYPE} variable;

For example, serializing IconData can be done like this.

@IconDataConverter()
final IconData variable;

Example #

Refer the example section for the full code.

// imports ...
part 'test.g.dart';

@JsonSerializable()
class Example {
  const Example(this.directory, this.file, this.color, this.duration, this.materialColor);

  factory Example.fromJson(Json json) => _$ExampleFromJson(json);

  @DirectoryConverter() // <- Convertors provided by osum_serializable!
  final Directory directory;

  @MaterialColorConverter()
  final MaterialColor materialColor;

  @FileConverter()
  final File file;

  @ColorConverter()
  final Color color;

  @DurationConverter()
  final Duration duration;

  Json toJson() => _$ExampleToJson(this);
}

Finally, don't forget to call the build_runner to generate the json implementation.

flutter pub run build_runner build
3
likes
140
points
38
downloads

Publisher

verified publisheraswinmurali.dev

Weekly Downloads

Serialize almost everything you ever need! Supports serializing MaterialColor, Color, IconData, Size, Locale, UuidValue, DateTime, Directory, File, Offset, Duration, and many more.

Repository (GitHub)
View/report issues

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

flutter, json_annotation, uuid

More

Packages that depend on osum_serializable