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

A package for parsing coded DioErrors into hierarchical Exception trees.

example/kami_example.dart

import 'package:dio/dio.dart';
import 'package:kami/kami.dart';
import 'package:meta/meta.dart';

class ApiExceptionParser extends ApiExceptionParserBase {
  ApiExceptionParser._() : super();
  static ApiExceptionParser instance = ApiExceptionParser._();

  @override
  ApiExceptionBaseInitializer builder() => _ApiException.instance;
}

abstract class ApiException extends ApiExceptionBase {
  const ApiException.inherit();
  factory ApiException() => _ApiException.instance;
}

class _ApiException extends ApiException with ApiExceptionMixin implements ApiExceptionBaseInitializer {
  _ApiException._() : super.inherit();
  static _ApiException instance = _ApiException._();

  @override
  init() {
    register('AUTH', ApiAuthException().fromCodeSequence);
    ApiAuthException().init();
  }
}

abstract class ApiAuthException extends ApiException {
  const ApiAuthException.inherit() : super.inherit();
  factory ApiAuthException() => _ApiAuthExceptionBase.instance;

  static TypeWrapper<ApiAuthException> someAuthError =
  TypeWrapper<_SomeAuthError>();
}

class _ApiAuthExceptionBase extends ApiAuthException with ApiExceptionMixin<ApiAuthException> {
  _ApiAuthExceptionBase._() : super.inherit();
  static ApiAuthException instance = _ApiAuthExceptionBase._();

  @override
  init() {
    register('SOME_AUTH_ERROR', _SomeAuthError._);
  }
}

@sealed
class _SomeAuthError extends ApiAuthException with ApiExceptionLeaf {
  _SomeAuthError._(DioError error, [_]) : super.inherit() {
    this.error = error;
  }

  @override
  String get message => 'Something went wrong with an Auth request.';
}

void main() {

}
0
likes
110
pub points
0%
popularity

Publisher

unverified uploader

A package for parsing coded DioErrors into hierarchical Exception trees.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

dio, meta

More

Packages that depend on kami