kind 0.5.0 copy "kind: ^0.5.0" to clipboard
kind: ^0.5.0 copied to clipboard

outdated

An unified data layer framework that enables serialization, persistence, and state observability for any Dart class. Comes with primitives such as decimal numbers and currency amounts.

example/example.dart

import 'dart:convert';

import 'package:kind/kind.dart';

void main() {
  final decodedJson = {
    'name': 'John Doe',
    'friends': [
      {'name': 'Alice'},
      {'name': 'Bob'},
    ],
  };

  // Decode JSON
  final person = Person.kind.jsonTreeDecode(
    decodedJson,
  );
  print('Name:');
  print(person.identifier);

  // Encode JSON
  final encodedJson = person.toJson();

  print('JSON:');
  print(json.encode(encodedJson));
}

class Person extends Entity {
  static final kind = EntityKind<Person>(
    name: 'Person',
    packageName: 'example',
    define: (c) {
      c.requiredString(
        id: 1,
        name: 'name',
        maxLengthInUtf8: 64,
        examples: ['John Doe'],
        field: (t) => t.name,
      );
      c.optionalDate(
        id: 2,
        name: 'dateOfBirth',
        field: (t) => t.dateOfBirth,
      );
      c.requiredList<Person>(
        id: 2,
        name: 'friends',
        itemsKind: Person.kind,
        field: (t) => t.friends,
      );
      c.constructor = () => Person();
    },
  );

  /// Name of person.
  late final Field<String> name = Field<String>(this);

  /// Name of person (nullable).
  late final Field<Date?> dateOfBirth = Field<Date?>(this);

  /// Employees of the person.
  late final ListField<Person> friends = ListField<Person>(this);

  @override
  EntityKind getKind() => kind;
}
8
likes
0
points
162
downloads

Publisher

verified publisherdint.dev

Weekly Downloads

An unified data layer framework that enables serialization, persistence, and state observability for any Dart class. Comes with primitives such as decimal numbers and currency amounts.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

collection, fixnum, meta, protobuf

More

Packages that depend on kind