sdb library

Simple DB.

Opinionated strong type API. Design around indexed db API which is a basic database API easy to implement with good web support and robust desktop implementation using idb_sqflite

In memory available (mainly for testing) and io implementation using sembast

Classes

Cursor
represents a cursor for traversing or iterating over multiple records in a database.
CursorWithValue
represents a cursor for traversing or iterating over multiple records in a database. It is the same as the Cursor, except that it includes the value property.
Database
provides a connection to a database; you can use an Database object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database.
Event
Event abstraction for onBlockedFunction
IdbFactory
Out factory for opening a database instead of using window.indexedDB
Index
provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data.
KeyRange
represents a continuous interval over some data type that is used for keys.
ObjectStore
represents an object store in a database. Records within an object store are sorted according to their keys. This sorting enables fast insertion, look-up, and ordered retrieval.
OpenDBRequest
provides access to the results of requests to open or delete databases
Request
provides access to results of asynchronous requests to databases and database objects using event handler attributes. Each reading and writing operation on a database is done using a request.
SdbBoundaries<T extends Object>
Lower and upper boundaries.
SdbBoundary<T extends Object>
Simple boundary definition. include default to true for lower boundary and false for upper boundary.
SdbDatabase
SimpleDb definition.
SdbFactory
Sdb Factory
SdbIndex1Ref<K extends KeyBase, V extends ValueBase, I extends IndexBase>
Index on 1 field
SdbIndex2Ref<K extends KeyBase, V extends ValueBase, I1 extends IndexBase, I2 extends IndexBase>
Index on 2 fields
SdbIndex3Ref<K extends KeyBase, V extends ValueBase, I1 extends IndexBase, I2 extends IndexBase, I3 extends IndexBase>
Index on 3 fields
SdbIndex4Ref<K extends KeyBase, V extends ValueBase, I1 extends IndexBase, I2 extends IndexBase, I3 extends IndexBase, I4 extends IndexBase>
Index on 4 fields
SdbIndexRecordKey<K extends KeyBase, V extends ValueBase, I extends IndexBase>
Index record key.
SdbIndexRecordRef<K extends KeyBase, V extends ValueBase, I extends IndexBase>
Index record reference.
SdbIndexRecordSnapshot<K extends KeyBase, V extends ValueBase, I extends IndexBase>
Index record snapshot.
SdbIndexRef<K extends KeyBase, V extends ValueBase, I extends IndexBase>
Index reference.
SdbLowerBoundary<T extends Object>
Lower boundary. (included by default).
SdbMultiStoreTransaction
Multi-store transaction.
SdbOpenDatabase
Database during open.
SdbOpenStoreRef<K extends KeyBase, V extends ValueBase>
Store during open.
SdbRecordKey<K extends KeyBase, V extends ValueBase>
Record snapshot.
SdbRecordRef<K extends KeyBase, V extends ValueBase>
Record reference.
SdbRecordSnapshot<K extends KeyBase, V extends ValueBase>
Record snapshot.
SdbSingleStoreTransaction<K extends KeyBase, V extends ValueBase>
Single store transaction.
SdbStoreRef<K extends KeyBase, V extends ValueBase>
A simple db store definition.
SdbTransaction
SimpleDb transaction.
SdbTransactionStoreRef<K extends KeyBase, V extends ValueBase>
Transaction store reference.
SdbUpperBoundary<T extends Object>
Upper boundary. (excluded by default).
SdbVersionChangeEvent
Event passed to SdbOnVersionChangeCallback.
Transaction
static, asynchronous transaction on a database using event handler attributes. All reading and writing of data is done within transactions. You actually use Database to start transactions and Transaction to set the mode of the transaction (e.g. is it readonly or readwrite), and access an ObjectStore to make a request. You can also use it to abort transactions.
VersionChangeEvent
indicates that the version of the database has changed, as the result of an onupgradeneeded event handler function.

Enums

SdbTransactionMode
Transaction mode.

Extensions

IdbFactoryLoggerDebugExt on IdbFactory
Debug extension for Logger.
SdbDatabaseExtension on SdbDatabase
SimpleDb methods.
SdbFactoryExtension on SdbFactory
Sdb Factory extension.
SdbIndex1RefExtension on SdbIndex1Ref<K, V, I>
Extension on index on 1 field.
SdbIndex2RefExtension on SdbIndex2Ref<K, V, I1, I2>
Extension on index on 2 fields.
SdbIndex3RefExtension on SdbIndex3Ref<K, V, I1, I2, I3>
Extension on index on 3 fields.
SdbIndex4RefExtension on SdbIndex4Ref<K, V, I1, I2, I3, I4>
Extension on index on 4 fields.
SdbIndexRecordKeyListExt on List<SdbIndexRecordKey<K, V, I>>
Common extension
SdbIndexRecordRefExtension on SdbIndexRecordRef<K, V, I>
Index record reference extension.
SdbIndexRecordSnapshotListExt on List<SdbIndexRecordSnapshot<K, V, I>>
Common extension
SdbIndexRefExtension on SdbIndexRef<K, V, I>
Index methods.
SdbMultiStoreTransactionExtension on SdbMultiStoreTransaction
Transaction store actions.
SdbOpenDatabaseExtension on SdbOpenDatabase
Database action during open.
SdbOpenStoreRefExtension on SdbOpenStoreRef<K, V>
Store action during open.
SdbRecordKeyListExt on List<SdbRecordKey<K, V>>
Common extension
SdbRecordRefExtension on SdbRecordRef<K, V>
Store methods.
SdbRecordSnapshotListExt on List<SdbRecordSnapshot<K, V>>
Common extension
SdbSingleStoreTransactionExtension on SdbSingleStoreTransaction<K, V>
Single store transaction extension.
SdbStoreRefExtension on SdbStoreRef<K, V>
Store methods.
SdbTransactionStoreRefExtension on SdbTransactionStoreRef<K, V>
Transaction store actions.

Constants

idbDirectionNext → const String
Default forward mode for cursor.
idbDirectionPrev → const String
Backward mode for cursor.
idbFactoryNameBrowser → const String
Pseudo - best browser shim (persistent of it not available memory).
idbFactoryNameLogger → const String
Factory name logger (wrapping another factory).
idbFactoryNameMemory → const String
Factory name that could be used to use Sembast Memory implementation.
idbFactoryNameNative → const String
Factory name using native indexeddb implementation.
idbFactoryNamePersistent → const String
Pseudo - best persistent shim (indexeddb).
idbFactoryNameSembastIo → const String
Factory name using Sembast implementation
idbFactoryNameSembastMemory → const String
Factory name using Sembast memory implementation
idbModeReadOnly → const String
Read-only mode for transaction.
idbModeReadWrite → const String
Read-write mode for transaction.
kIdbDartIsWeb → const bool
Borrowed from flutter (isRunningAsJavascript is false in wasm)
kSdbDartIsWeb → const bool
Web constant helper (needed for non-flutter app)

Properties

idbFactoryMemory IdbFactory
The in-memory factory
no setter
idbFactoryMemoryFs IdbFactory
Special factory in memory but supporting writing on a virtual file system (in memory too)
no setter
idbFactoryNative IdbFactory
The native factory
no setter
idbFactoryWeb IdbFactory
The web factory
no setter
idbFactoryWebSupported bool
no setter
sdbFactoryIo SdbFactory
Sembast io factory.
final
sdbFactoryMemory SdbFactory
Memory factory.
final
sdbFactoryWeb SdbFactory
Native (browser) factory.
final

Functions

sdbFactoryFromIdb(IdbFactory idbFactory) SdbFactory
Factory from idb factory.

Typedefs

OnBlockedFunction = void Function(Event event)
OnBlocked function.
OnUpgradeNeededFunction = FutureOr<void> Function(VersionChangeEvent event)
OnUpgrade function.
SdbModel = Map<String, Object?>
Model class.
SdbOnVersionChangeCallback = FutureOr<void> Function(SdbVersionChangeEvent event)
Callback for SdbOpenDatabase.onVersionChange.

Exceptions / Errors

DatabaseError
Generic database error.
DatabaseException
Generic database exception.
DatabaseIndexNotFoundError
Index not found.
DatabaseInvalidKeyError
invalid key error.
DatabaseNoKeyError
no key error.
DatabaseReadOnlyError
Read only error.
DatabaseStoreNotFoundError
Store not found error.
DatabaseTransactionStoreNotFoundError
Store not found.