new change to use intaleq_map sdk 04-16-4

This commit is contained in:
Hamza-Ayed
2026-04-16 19:45:03 +03:00
parent 0aa1f15f25
commit a54a7a4189
850 changed files with 83282 additions and 3075 deletions

View File

@@ -0,0 +1,56 @@
import 'dart:async';
import '../request/request.dart';
import '../response/response.dart';
typedef RequestModifier<T> = FutureOr<Request<T>> Function(Request<T?> request);
typedef ResponseModifier<T> = FutureOr Function(
Request<T?> request, Response<T?> response);
typedef HandlerExecute<T> = Future<Request<T>> Function();
class GetModifier<S> {
final _requestModifiers = <RequestModifier>[];
final _responseModifiers = <ResponseModifier>[];
RequestModifier? authenticator;
void addRequestModifier<T>(RequestModifier<T> interceptor) {
_requestModifiers.add(interceptor as RequestModifier);
}
void removeRequestModifier<T>(RequestModifier<T> interceptor) {
_requestModifiers.remove(interceptor);
}
void addResponseModifier<T>(ResponseModifier<T> interceptor) {
_responseModifiers.add(interceptor as ResponseModifier);
}
void removeResponseModifier<T>(ResponseModifier<T> interceptor) {
_requestModifiers.remove(interceptor);
}
Future<Request<T>> modifyRequest<T>(Request<T> request) async {
var newRequest = request;
if (_requestModifiers.isNotEmpty) {
for (var interceptor in _requestModifiers) {
newRequest = await interceptor(newRequest) as Request<T>;
}
}
return newRequest;
}
Future<Response<T>> modifyResponse<T>(
Request<T> request, Response<T> response) async {
var newResponse = response;
if (_responseModifiers.isNotEmpty) {
for (var interceptor in _responseModifiers) {
newResponse = await interceptor(request, response) as Response<T>;
}
}
return newResponse;
}
}