jh_network_core 0.1.0
jh_network_core: ^0.1.0 copied to clipboard
A configurable, business-agnostic Dio client builder with layered overrides, response decoding, error mapping, and logging hooks.
import 'package:dio/dio.dart';
import 'package:jh_network_core/jh_network_core.dart';
Future<void> main() async {
final factory = NetworkClientFactory(
NetworkClientConfig(
baseUrlProvider: () => 'https://api.example.com',
headersProvider: (_) => {'accept-language': 'en-US'},
networkErrorMessageProvider: (kind, error) => switch (kind) {
NetworkErrorKind.noConnection => 'No internet connection.',
NetworkErrorKind.timeout => 'The request timed out.',
_ => null,
},
),
);
final dio = factory.create(
overrides: NetworkClientOverrides(
headersProvider: (_) => {'x-api-module': 'example'},
interceptors: [LogInterceptor(requestBody: true, responseBody: true)],
),
);
final response = await dio.get<Map<String, dynamic>>('/status');
print(response.data);
}