Skip to main content

flutter_jungle_core 0.0.1 copy "flutter_jungle_core: ^0.0.1" to clipboard
flutter_jungle_core: ^0.0.1 copied to clipboard

Flutter Jungle Core

Flutter Jungle Core #

Paquete con utilidades reutilizables para proyectos Flutter: tipos para modelar resultados y recursos, objetos de valor con validaciones y herramientas de logging.

Características #

  • Either para representar un resultado con una alternativa de error o éxito.
  • Resource y ResultOr para expresar estados de carga, éxito y fallo.
  • ValueObject como base para objetos de valor validados.
  • Validaciones listas para usar: CIF, descripción, email, nombre completo, IBAN, NIE, NIF, contraseña, repetición de contraseña y teléfono.
  • Failures específicos para consultar el motivo de cada validación fallida.
  • Logging con niveles y registros estructurados.
  • Extensión firstWhereOrNull para iterables.

Instalación #

Añade la dependencia a tu proyecto:

flutter pub add flutter_jungle_core

Después, importa la librería:

import 'package:flutter_jungle_core/flutter_jungle_core.dart';

Uso #

Validar un email #

Los objetos de valor proporcionan isValid, isInvalid, getOrElse y when para inspeccionar el resultado de una validación:

final email = EmailVos('persona@example.com');

email.when(
  isLeft: (failure) {
    print('Email no válido: ${failure.code}');
  },
  isRight: (value) {
    print('Email válido: $value');
  },
);

Representar el estado de una operación #

Resource incluye los estados none, loading, success y failure:

final Resource<String, List<String>> state =
    Resource<String, List<String>>.success(['Ana', 'Luis']);

state.when(
  isNone: () => print('Sin datos'),
  isLoading: () => print('Cargando...'),
  isSuccess: (users) => print('Usuarios: $users'),
  isFailure: (error) => print('Error: $error'),
);

ResultOr ofrece estados equivalentes cuando no se necesita transportar un valor de éxito:

final ResultOr<String> result = ResultOr<String>.failure('No se pudo guardar');

result.when(
  isNone: () => print('Sin resultado'),
  isLoading: () => print('Guardando...'),
  isSuccess: () => print('Guardado'),
  isFailure: (error) => print('Error: $error'),
);

Logging #

final logger = Logger('mi_app');
logger.info('Aplicación iniciada');
logger.warning('Aviso de ejemplo');

Validaciones disponibles #

Value object Failure
CifVos CifFailure
DescriptionVos DescriptionFailure
EmailVos EmailFailure
FullnameVos FullnameFailure
IbanVos IbanFailure
NieVos NieFailure
NifVos NifFailure
PasswordVos PasswordFailure
RepeatPasswordVos PasswordRepeatFailure
PhoneVos PhoneFailure

Contribuir e informar de problemas #

El código fuente está en GitHub. Para reportar errores o proponer mejoras, abre una incidencia.

2
likes
150
points
135
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter Jungle Core

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

dio, flutter

More

Packages that depend on flutter_jungle_core