Constructor
new DBEngine()
This manages all operations on an IndexedDB. This wraps all operations
in Promises. All Promises will resolve once the transaction has completed.
Depending on the browser, this may or may not be after the data is flushed
to disk. https://goo.gl/zMOeJc
- Implements:
- Source:
Members
-
(private, static) DB_NAME_ :string
-
Type:
- string
- Source:
-
(private, static) DB_VERSION_ :number
-
@const
Type:
- number
- Source:
-
(private, non-null) currentIdMap_ :Object.<string, number>
-
Type:
- Object.<string, number>
- Source:
-
(private) db_ :IDBDatabase
-
Type:
- IDBDatabase
- Source:
-
(private, non-null) operations_ :Array.<shaka.offline.DBEngine.Operation>
-
Type:
- Array.<shaka.offline.DBEngine.Operation>
- Source:
Methods
-
(static) deleteDatabase() → (non-null) {Promise}
-
Delete the database. There must be no open connections to the database.
- Source:
Returns:
- Type
- Promise
-
(static) isSupported() → {boolean}
-
Determines if the browsers supports IndexedDB.
- Source:
Returns:
- Type
- boolean
-
(private, static) onError_(errorSource, promisenon-null, event)
-
Rejects the given Promise using the error fromt the transaction.
Parameters:
Name Type Description errorSourceIDBTransaction | IDBRequest promiseshaka.util.PublicPromise eventEvent - Source:
-
(private) closeOperation_(opnon-null)
-
Close an open operation.
Parameters:
Name Type Description opshaka.offline.DBEngine.Operation - Source:
-
(private) createConnection_(storeMapnon-null, opt_retryCountopt) → (non-null) {Promise}
-
Creates a new connection to the database. On IE/Edge, it is possible for the database to not be deleted when the success callback is fired. This means that when we delete the database and immediately create a new connection, we will connect to the old database. If this happens, we need to close the connection and retry.
Parameters:
Name Type Attributes Description storeMapObject.<string, string> opt_retryCountnumber <optional>
- Source:
- See:
Returns:
- Type
- Promise
-
(private) createTransaction_(storeName, type, actionnon-null) → (non-null) {Promise}
-
Creates a new transaction for the given store name and calls |action| to modify the store. The transaction will resolve or reject the promise returned by this function.
Parameters:
Name Type Description storeNamestring typestring action!function(IDBObjectStore) - Source:
Returns:
- Type
- Promise
-
destroy()
-
- Source:
-
forEach(storeName, callback) → (non-null) {Promise}
-
Calls the given callback for each value in the store. The promise will resolve after all items have been traversed.
Parameters:
Name Type Description storeNamestring callbackfunction(T) - Implements:
- Source:
Returns:
- Type
- Promise
-
get(storeName, key) → (non-null) {Promise.<T>}
-
Gets the item with the given ID in the store.
Parameters:
Name Type Description storeNamestring keynumber - Implements:
- Source:
Returns:
- Type
- Promise.<T>
-
(private) getNextId_(storeName) → (non-null) {Promise.<number>}
-
Gets the ID to start at.
Parameters:
Name Type Description storeNamestring - Source:
Returns:
- Type
- Promise.<number>
-
init(storeMapnon-null, opt_retryCountopt) → (non-null) {Promise}
-
Initializes the storage system and creates the required tables. If opt_retryCount is given, then we are creating a new database and expect an 'upgradeneeded' event. If we don't get one, we will retry opt_retryCount times. This is used to work around a bug in IE/Edge and is only used in our unit tests.
Parameters:
Name Type Attributes Description storeMapObject.<string, string> A map of store name to the key path. opt_retryCountnumber <optional>
- Implements:
- Source:
Returns:
- Type
- Promise
-
initialized() → {boolean}
-
Gets whether the storage engine is initialized.
- Implements:
- Source:
Returns:
- Type
- boolean
-
insert(storeName, valuenon-null) → (non-null) {Promise}
-
Adds or updates the given value in the store.
Parameters:
Name Type Description storeNamestring valueObject - Implements:
- Source:
Returns:
- Type
- Promise
-
remove(storeName, key) → (non-null) {Promise}
-
Removes the item with the given key.
Parameters:
Name Type Description storeNamestring keynumber - Implements:
- Source:
Returns:
- Type
- Promise
-
removeKeys(storeName, keysnon-null, opt_onKeyRemovedopt) → (non-null) {Promise}
-
Removes the elements with the given keys.
Parameters:
Name Type Attributes Description storeNamestring keysArray.<number> opt_onKeyRemovedfunction()= <optional>
- Implements:
- Source:
Returns:
- Type
- Promise
-
reserveId(storeName) → {number}
-
Reserves the next ID and returns it.
Parameters:
Name Type Description storeNamestring - Implements:
- Source:
Returns:
- Type
- number
Type Definitions
-
Operation
-
Type:
- {transaction: !IDBTransaction, promise: !shaka.util.PublicPromise}
Properties:
Name Type Description transactionIDBTransaction The transaction that this operation is using. promiseshaka.util.PublicPromise The promise associated with the operation. - Source: