synquill
library
Classes
ApiAdapterBase <TModel extends SynquillDataModel <TModel > >
Abstract interface for REST API adapters used by SynquillStorage.
BackgroundSyncManager
Background sync manager for handling platform-specific background tasks.
BackgroundTransformer
The default Transformer for Dio .
BaseOptions
A set of base settings for each Dio().
BaseOptions and Options will be merged into one RequestOptions before
sending the requests. See Options.compose .
BasicApiAdapter <TModel extends SynquillDataModel <TModel > >
Concrete implementation of ApiAdapterBase using Dio for HTTP requests.
CancelToken
Controls cancellation of Dio 's requests.
CascadeDeleteRelation
Represents a cascade delete relationship between models
DatabaseProvider
Global database provider for the synced data storage system
DependencyResolver
Manages dependency resolution for hierarchical sync ordering.
Dio
Dio enables you to make HTTP requests easily.
DioMixin
ErrorInterceptorHandler
The handler for interceptors to handle error occurred during the request.
FieldSelector <T >
Base class for typed field selectors.
FilterCondition <T >
Typed version of FilterCondition that provides compile-time type safety.
FilterValue <T >
Base class for typed filter condition values
ForeignKeyRelation
Represents a foreign key relationship where this model references another
ForeignKeyUpdateService
Service for updating foreign key references when model IDs change.
FormData
A class to create readable "multipart/form-data" streams.
It can be used to submit forms and file uploads to http server.
FusedTransformer
A Transformer that has a fast path for decoding UTF8-encoded JSON.
If the response is utf8-encoded JSON and no custom decoder is specified in the RequestOptions , this transformer
is significantly faster than the default SyncTransformer and the BackgroundTransformer .
This improvement is achieved by using a fused Utf8Decoder and JsonDecoder to decode the response,
which is faster than decoding the utf8-encoded JSON in two separate steps, since
Dart uses a special fast decoder for this case.
See https://github.com/dart-lang/sdk/blob/5b2ea0c7a227d91c691d2ff8cbbeb5f7f86afdb9/sdk/lib/_internal/vm/lib/convert_patch.dart#L40
The headers class for requests and responses.
HttpClientAdapter
HttpAdapter is a bridge between Dio and HttpClient .
IdConflictResolver
Service for resolving ID conflicts during server ID negotiation.
IdNegotiationService <T extends SynquillDataModel <T > >
Service for managing server ID negotiation without modifying user models
Indexed
Annotation to mark a field for database indexing.
This will create a database index on the annotated field to improve
query performance.
Interceptor
Interceptor helps to deal with RequestOptions , Response ,
and DioException during the lifecycle of a request
before it reaches users.
Interceptors
A Queue-Model list for Interceptor s.
InterceptorsWrapper
A helper class to create interceptors in ease.
Level
Level s to control logging output. Logging can be enabled to include all
levels above certain Level . Level s are ordered using an integer
value Level.value . The predefined Level constants below are sorted as
follows (in descending order): Level.SHOUT , Level.SEVERE ,
Level.WARNING , Level.INFO , Level.CONFIG , Level.FINE , Level.FINER ,
Level.FINEST , and Level.ALL .
ListParam <T >
Indicates a param being used as queries or form data,
and how does it gets formatted.
ListValue <T >
List value for inList/notInList operations
Logger
Use a Logger to log debug messages.
LogInterceptor
LogInterceptor is used to print logs during network requests.
It should be the last interceptor added,
otherwise modifications by following interceptors will not be logged.
This is because the execution of interceptors is in the order of addition.
LogRecord
A log entry representation used to propagate information from Logger to
individual handlers.
ManyToOne
Annotation to mark a field as a many-to-one relation.
This creates a foreign key constraint in the database.
ModelInfoRegistryProvider
Global provider for model metadata including cascade delete relationships
MultipartFile
An upload content that is a part of MultipartRequest.
This doesn't need to correspond to a physical file.
NativeDatabase
A drift database implementation based on dart:ffi, running directly in a
Dart VM or an AOT compiled Dart/Flutter application.
NetworkTask <T >
Represents a network operation task that can be executed
by the RequestQueue.
NoValue <T >
No value for isNull/isNotNull operations
OneToMany
Annotation to mark a field as a one-to-many relation.
This field should be of type List
Options
The configuration for a single request.
BaseOptions and Options will be merged into one RequestOptions before
sending the requests. See Options.compose .
Represents pagination parameters.
PluralizationUtils
Utility class for English pluralization rules
QueryParams
Typed version of QueryParams that provides compile-time safety.
QueuedInterceptor
Interceptor in queue.
QueuedInterceptorsWrapper
A helper class to create QueuedInterceptor in ease.
QueueStats
Statistics for a request queue.
RedirectRecord
A record that records the redirection happens during requests,
including status code, request method, and the location.
RepositoryChange <T >
A change in a repository.
This is emitted through the repository's change stream.
RequestInterceptorHandler
The handler for interceptors to handle before the request has been sent.
RequestOptions
The internal request option class that is the eventual result after
BaseOptions and Options are composed.
RequestQueue
A queue for managing sequential execution of network operations.
RequestQueueManager
Manages multiple request queues for different types of API operations.
Response <T >
The Response class contains the payload (could be transformed)
that respond from the request, and other information of the response.
ResponseBody
The response wrapper class for adapters.
ResponseInterceptorHandler
The handler for interceptors to handle after respond.
RetryExecutor
Manages retry logic for sync queue operations with exponential backoff.
ServerIdMetadata
Metadata for tracking server ID negotiation process
SingleValue <T >
Single value for most filter operations
SortCondition <T >
Typed version of SortCondition that provides compile-time safety
for field names.
SyncDetails
Holds detailed synchronization information for a model instance.
SyncQueueDao
Data Access Object for managing sync queue items.
SyncStatusConverter
Drift type converter for SyncStatus enum
SyncTransformer
If you want to custom the transformation of request/response data,
you can provide a Transformer by your self, and replace
the transformer by setting the Dio.transformer .
SynqillDatabaseVersion
Annotation to specify the database schema version.
This annotation can be placed anywhere in the application code where
SynquillStorage is initialized. If no annotation is present, the default
version is 1.
SynquillDataModel <T extends SynquillDataModel <T > >
Base class for all data models that are to be managed by SynquillStorage.
SynquillRepository
An annotation to mark a class as a data model for which
a Drift table and repository should be generated.
SynquillRepositoryBase <T extends SynquillDataModel <T > >
Base class for synchronized repositories.
SynquillRepositoryProvider
Provides a centralized mechanism for registering and retrieving repository
instances.
This allows for dependency injection of repositories, primarily for testing
and decoupling model logic from concrete repository implementations.
SynquillStorage
Main class for interacting with the synced data storage.
SynquillStorageConfig
Base class for synced data storage configuration.
Transformer
Transformer allows changes to the request/response data before
it is sent/received to/from the server.
Enums
DataLoadPolicy
Enum representing different data store policies.
DataSavePolicy
Enum representing different data store policies.
DioExceptionType
The exception enumeration indicates what type of exception
has happened during requests.
FileAccessMode
The file access mode when downloading a file, corresponds to a subset of
dart:io::FileMode .
FilterOperator
Enum representing different comparison operators for filtering.
IdGenerationStrategy
Strategy for ID generation in models.
IdNegotiationStatus
Status of ID negotiation process for server-generated IDs.
ListFormat
Specifies the array format (a single parameter with multiple parameter
or multiple parameters with the same name).
and the separator for array items.
QueueType
Queue types for different API operations.
RepositoryChangeType
Represents a change to a repository.
This is used for notifying listeners about changes to the data.
ResponseType
Indicates which transformation should be applied to the response data.
SortDirection
Enum representing sort directions.
SyncOperation
Represents an operation to be performed on a sync queue.
SyncStatus
Enum representing the synchronization status of a record