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

A high-performance, type-safe schema validation library for Dart & Flutter.

example/main.dart

// ignore_for_file: avoid_print

import 'dart:convert';

import 'package:zema/zema.dart';

extension type User(Map<String, dynamic> _) {
  int get id => _['id'] as int;
  String get name => _['name'] as String;
  String get email => _['email'] as String;
  int? get age => _['age'] as int?;
}

final userSchema = z.objectAs<User>(
  {
    'id': z.integer(),
    'name': z.string().min(1),
    'email': z.string().email(),
    'age': z.integer().gte(18, message: 'Must be 18 or older').optional(),
  },
  (map) => User(map),
);

void main() {
  // Fetch data
  final response = jsonEncode({
    'id': 1,
    'name': 'Leanne Graham',
    'email': 'sincere@april.biz',
    //'age': 16,
  });

  // Decode JSON
  final json = jsonDecode(response);

  // Validate with Zema
  final result = userSchema.safeParse(json);

  // Handle result
  if (result.isSuccess) {
    final user = result.value;

    print('✅ Valid user:');
    print('   ID: ${user.id}');
    print('   Name: ${user.name}');
    print('   Email: ${user.email}');
  } else {
    print('❌ Validation failed:');
    for (final error in result.errors) {
      final field = error.path.isEmpty ? 'root' : error.path.join('.');
      print('   $field: ${error.message}');
    }
  }
}
1
likes
160
points
247
downloads

Documentation

Documentation
API reference

Publisher

verified publishermeragix.dev

Weekly Downloads

A high-performance, type-safe schema validation library for Dart & Flutter.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#validation #schema #parsing #zod #type-safe

License

MIT (license)

Dependencies

meta

More

Packages that depend on zema