velix 0.91.2
velix: ^0.91.2 copied to clipboard
flutter foundation library. This core library contains basic functionality, mainly the meta-data organization and its related code generator used by the different addons.
Introduction #
Velix is Dart/Flutter library implementing some of the core parts required in every Flutter application:
- type meta data
- specification and validation of type constraints
- general purpose mapping framework
- json mapper
- model-based two-way form data-binding
- i18n
- dependency injection container
- command pattern for ui actions
Check out some articles on Medium:
The core - which is the capturing of type meta-data - is part of this package. The other packages are:
Overview #
Validation #
As in some popular Typescript libraries like yup
, it is possible to declare type constraints with a simple fluent language
var type = IntType().greaterThan(0).lessThan(100);
type.validate(-1); // meeeh....will throw
Type Meta-Data #
In combination with a custom code generator, classes decorated with specific annotations - here @Dataclass
- emit the meta data:
@Dataclass()
class Money {
// instance data
@Attribute(type: "length 7")
final String currency;
@Attribute(type: ">= 0")
final int value;
const Money({required this.currency, required this.value});
}
The information will be used by a number of mechanisms, such as
- dependency injection container
- the mapping framework
- form data-binding.
Installation #
All packages are published to pub.dev.
Documentation #
Detailed information can be found in the corresponding Wiki.