LikeConfig class
Global configuration for the LIKE engine's behavior and caching system.
Constructors
-
LikeConfig({required String projectName, String baseUrl = '', LikeDataUnpacker unpacker = const DefaultLikeUnpacker(), Map<
String, String> extraBaseUrls = const {}, Map<String, String> defaultHeaders = const {}, Duration connectTimeout = const Duration(seconds: 30), Duration receiveTimeout = const Duration(seconds: 30), Duration sendTimeout = const Duration(seconds: 30), Duration initTimeout = const Duration(seconds: 15), Duration connTimeout = const Duration(seconds: 5), int connDebounceMs = 500, bool enableLogging = true, bool silentConsole = false, bool silentSyncLogs = false, bool compactApiLogs = false, bool silentApiStartLogs = false, bool disableFileLogging = false, bool verboseLogging = false, List<String> sensitiveHeaders = const ['Authorization', 'Cookie', 'Set-Cookie'], int computeThresholdKB = 100, String? encryptionKey, bool? verifySSL, String sslCertSha256 = '', bool cacheEnabled = true, bool staleWhileRevalidateEnabled = true, bool deduplicateEnabled = true, bool perfTrackingEnabled = true, bool rateLimitEnabled = true, bool autoRetryRateLimit = true, bool mockEnabled = false, bool throttleEnabled = true, bool silentRefreshEnabled = true, bool cacheOnOffline = false, bool cacheOnError = false, bool cacheOnException = false, int maxAutoRetries = 3, List<int> retryDelays = const [1, 2, 4], bool offlineSyncEnabled = true, bool backgroundSyncEnabled = true, bool withAuthByDefault = true, bool offlineSyncByDefault = true, bool disableCacheByDefault = false, bool disableLoggerByDefault = false, bool suppressErrorsByDefault = true, bool staleWhileRevalidateByDefault = true, bool sessionStaleByDefault = false, bool singleFetchByDefault = false, bool refreshByDefault = false, bool bottomRefreshByDefault = false, bool healthCheckByDefault = false, bool deduplicateByDefault = true, int cacheTTL = 7, int maxL1CacheItems = 200, int maxInFlightRequests = 100, int sessionStaleTTL = 5, int imageStalePeriod = 90, int maxImageCacheItems = 5000, double maxImageCacheMB = 500.0, double minImageCacheMB = 400.0, String? boxApiCache, String? boxOfflineQueue, String? boxCacheMetadata, String? boxEtags, String connCheckHost = 'google.com', bool supportWeb = false, List<Interceptor> interceptors = const []})
Properties
- autoRetryRateLimit → bool
-
Automatically handles "Too Many Requests" (HTTP 429) errors from the server.
final
- backgroundSyncEnabled → bool
-
Allows background sync tasks to run even when the user closes or minimizes the app.
final
- baseUrl → String
-
The main web address (API root URL) that your app talks to.
final
- bottomRefreshByDefault → bool
-
Displays a subtle pagination-friendly loading indicator (like a bottom spinner) instead of a full-screen loading spinner.
final
- boxApiCache → String
-
The storage box table name used for general API response cache payloads.
final
- boxCacheMetadata → String
-
The storage box table name used for caching timestamps, expiration dates, and metadata.
final
-
The storage box table name used for storing ETag markers to support 304 response validations.
final
- boxOfflineQueue → String
-
The storage box table name used for queueing failed mutations waiting for offline sync.
final
- cacheEnabled → bool
-
Globally turns the caching system ON or OFF.
final
- cacheOnError → bool
-
Falls back to your local cache if the server crashes (5xx errors).
final
- cacheOnException → bool
-
Falls back to your local cache if a request fails due to an exception (like a network timeout).
final
- cacheOnOffline → bool
-
Immediately falls back to your local cache if the user makes a request while offline.
final
- cacheTTL → int
-
How many days cached data stays in the local database before it is deleted to save space.
final
- compactApiLogs → bool
-
Condenses all network request logs into a single clean line in your terminal.
final
- computeThresholdKB → int
-
The threshold size (in Kilobytes) above which JSON parsing is offloaded to a background thread.
final
- connCheckHost → String
-
The host website address (defaults to
google.com) used to verify if the device has actual, active internet.final - connDebounceMs → int
-
The wait time (in milliseconds) before acting on a change in your internet connection.
final
- connectTimeout → Duration
-
How long the app should wait to establish a connection with the server before giving up.
final
- connTimeout → Duration
-
How long to wait when doing a real-world internet check (like pinging a reliable website).
final
- deduplicateByDefault → bool
-
Groups identical concurrent requests together by default across the entire app.
final
- deduplicateEnabled → bool
-
Automatically groups identical network requests made at the exact same moment.
final
-
defaultHeaders
→ Map<
String, String> -
HTTP Headers that are automatically added to every single outgoing request.
final
- disableCacheByDefault → bool
-
Bypasses the cache and goes directly to the internet by default for all requests.
final
- disableFileLogging → bool
-
Disables writing log files to the physical device's storage.
final
- disableLogger → bool
-
no setter
- disableLoggerByDefault → bool
-
Turns off terminal logging for all requests by default.
final
- enableLogging → bool
-
The master switch to turn the console logging system ON or OFF.
final
- encryptionKey → String?
-
Optional secret password key used to fully encrypt all cached data saved on disk.
final
-
extraBaseUrls
→ Map<
String, String> -
Extra web addresses you can use if your app talks to multiple different servers.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- healthCheckByDefault → bool
-
Performs a pre-flight internet check to ensure the server is fully reachable before attempting the network call by default.
final
- imageStalePeriod → int
-
How many days cached images are stored before they are marked stale and eligible for deletion.
final
- initTimeout → Duration
-
How long the engine is allowed to take to set up and open its local databases (Hive) when the app starts.
final
-
interceptors
→ List<
Interceptor> -
Custom Dio interceptors to inject into the global LikeClient singleton.
final
- maxAutoRetries → int
-
The maximum number of times the app will automatically retry a failed request before finally giving up.
final
- maxImageCacheItems → int
-
The maximum number of image files allowed to be stored in the disk image cache.
final
- maxImageCacheMB → double
-
The absolute disk storage limit (in Megabytes) allowed for caching images on the phone.
final
- maxInFlightRequests → int
-
The maximum number of network requests allowed to run at the exact same moment.
final
- maxL1CacheItems → int
-
The maximum number of individual responses kept in fast RAM memory at once.
final
- minImageCacheMB → double
-
The target disk storage size (in Megabytes) the cache manager tries to clean down to when pruning old image files.
final
- mockEnabled → bool
-
Simulates internet responses using offline mock data files.
final
- offlineSyncByDefault → bool
-
Automatically saves mutation requests (POST/PUT/DELETE) to the offline sync queue by default if offline.
final
- offlineSyncEnabled → bool
-
Enables the persistent "Offline Action Sync Queue" globally.
final
- perfTrackingEnabled → bool
-
Turns performance benchmark tracking ON or OFF globally.
final
- projectName → String
-
The name of the project. Used as a namespace prefix for storage, cache directories, encryption keys, and Hive boxes.
final
- rateLimitEnabled → bool
-
Prevents your app from spamming your API server with too many requests.
final
- receiveTimeout → Duration
-
How long the app should wait to receive data from the server once a connection is made.
final
- refreshByDefault → bool
-
Ignores all cache levels and forces a hard internet refresh on every request by default.
final
-
retryDelays
→ List<
int> -
The delay times (in seconds) between each automatic retry attempt.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sendTimeout → Duration
-
How long the app should wait while sending data (like uploading a file or photo) to the server.
final
-
sensitiveHeaders
→ List<
String> -
List of headers (like password tokens or auth keys) that should be hidden/masked in logs.
final
- sessionStaleByDefault → bool
-
Saves request results in fast RAM memory for the current session by default.
final
- sessionStaleTTL → int
-
How many minutes session-stale RAM data is considered fresh before it expires.
final
- silentApiStartLogs → bool
-
Hides logs that print the exact millisecond a request is initiated.
final
- silentConsole → bool
-
Suppresses all logs in the console, even if enableLogging is
true.final - silentRefreshEnabled → bool
-
Keeps background revalidation silent and seamless for the user.
final
- silentSyncLogs → bool
-
Hides background logs related to internet checks and sync actions.
final
- singleFetchByDefault → bool
-
Restricts endpoints to be called exactly once per session by default, ignoring subsequent requests.
final
- sslCertSha256 → String
-
The secure fingerprint string of your server's certificate used for "SSL Pinning".
final
- staleWhileRevalidateByDefault → bool
-
Enforces Stale-While-Revalidate (SWR) behavior by default for all GET requests.
final
- staleWhileRevalidateEnabled → bool
-
Master switch to enable the "Stale-While-Revalidate" (SWR) cache flow globally.
final
- supportWeb → bool
-
Enabling this parameter configures the engine to operate fully safely and functionally
on Web platforms without compromising key features (like caching and offline mutations).
final
- suppressErrorsByDefault → bool
-
Prevents the app from showing automatic error popup toasts or alerts when a request fails by default.
final
- throttleEnabled → bool
-
Blocks consecutive identical requests fired in a tiny split second.
final
- unpacker → LikeDataUnpacker
-
A helper class that unpacks your JSON responses and extracts only the relevant data.
final
- verboseLogging → bool
-
Enables extremely deep, detailed logs for internal developer debugging.
final
- verifySSL → bool
-
Whether to verify SSL/TLS security certificates of the servers you connect to.
final
- withAuthByDefault → bool
-
Attaches authorization/login headers to requests by default.
final
Methods
-
copyWith(
{String? projectName, String? baseUrl, LikeDataUnpacker? unpacker, Map< String, String> ? extraBaseUrls, Map<String, String> ? defaultHeaders, Duration? connectTimeout, Duration? receiveTimeout, Duration? sendTimeout, Duration? initTimeout, Duration? connTimeout, int? connDebounceMs, bool? enableLogging, bool? silentConsole, bool? silentSyncLogs, bool? compactApiLogs, bool? silentApiStartLogs, bool? disableFileLogging, bool? verboseLogging, List<String> ? sensitiveHeaders, int? computeThresholdKB, String? encryptionKey, bool? verifySSL, String? sslCertSha256, bool? cacheEnabled, bool? staleWhileRevalidateEnabled, bool? deduplicateEnabled, bool? perfTrackingEnabled, bool? rateLimitEnabled, bool? autoRetryRateLimit, bool? mockEnabled, bool? throttleEnabled, bool? silentRefreshEnabled, bool? cacheOnOffline, bool? cacheOnError, bool? cacheOnException, int? maxAutoRetries, List<int> ? retryDelays, bool? offlineSyncEnabled, bool? backgroundSyncEnabled, bool? withAuthByDefault, bool? offlineSyncByDefault, bool? disableCacheByDefault, bool? disableLoggerByDefault, bool? suppressErrorsByDefault, bool? staleWhileRevalidateByDefault, bool? sessionStaleByDefault, bool? singleFetchByDefault, bool? refreshByDefault, bool? bottomRefreshByDefault, bool? healthCheckByDefault, bool? deduplicateByDefault, int? cacheTTL, int? maxL1CacheItems, int? maxInFlightRequests, int? sessionStaleTTL, int? imageStalePeriod, int? maxImageCacheItems, double? maxImageCacheMB, double? minImageCacheMB, String? boxApiCache, String? boxOfflineQueue, String? boxCacheMetadata, String? boxEtags, String? connCheckHost, bool? supportWeb, List<Interceptor> ? interceptors}) → LikeConfig -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited