ngforage
Version:
localForage bindings for Angular
134 lines • 13.2 kB
JavaScript
import { Injectable } from '@angular/core';
import { BaseConfigurableImpl } from '../config';
import * as i0 from "@angular/core";
/**
* Cache instance
*/
export class NgForage extends BaseConfigurableImpl {
/**
* Returns the name of the driver being used, or null if none can be used.
*/
get activeDriver() {
return this.store.driver();
}
/**
* When invoked with no arguments, it drops the “store” of the current instance. When invoked with an object
* specifying both name and storeName properties, it drops the specified “store”. When invoked with an object
* specifying only a name property, it drops the specified “database” (and all its stores).
*/
async dropInstance(cfg) {
return await (cfg ? this.store.dropInstance(cfg) : this.store.dropInstance());
}
/**
* Removes every key from the database, returning it to a blank slate.
*
* clear() will remove <b>every item in the offline store</b>. Use this method with caution.
*/
async clear() {
return await this.store.clear();
}
/**
* Make a clone of the instance
* @param config Optional configuration
*/
clone(config) {
const inst = new NgForage(this.baseConfig, this.fact);
inst.configure({ ...this.finalConfig, ...config });
return inst;
}
/**
* Gets an item from the storage library.
* If the key does not exist, getItem() will return null.
* @param key Data key
*/
async getItem(key) {
return await this.store.getItem(key);
}
/**
* Iterate over all value/key pairs in datastore.
* <i>iteratee</i> is called once for each pair, with the following arguments:
* <ol>
* <li>Value</li>
* <li>Key</li>
* <li>iterationNumber - one-based number</li>
* </ol>
* iterate() supports early exit by returning a non-`undefined` value inside iteratorCallback callback.
* @param iteratee
*/
async iterate(iteratee) {
return await this.store.iterate(iteratee);
}
/**
* Get the name of a key based on its ID.
* @param index
*/
async key(index) {
return await this.store.key(index);
}
/**
* Get the list of all keys in the datastore.
*/
async keys() {
return await this.store.keys();
}
/**
* Gets the number of keys in the offline store (i.e. its “length”).
*/
async length() {
return await this.store.length();
}
/**
* Even though localForage queues up all of its data API method calls,
* ready() provides a way to determine whether the asynchronous driver initialization process has finished.
* That’s useful in cases like when we want to know which driver localForage has settled down using.
*/
async ready() {
return await this.store.ready();
}
/**
* Removes the value of a key from the offline store.
* @param key Data key
*/
async removeItem(key) {
return await this.store.removeItem(key);
}
/**
* Saves data to an offline store. You can store the following types of JavaScript objects:
* <ul>
* <li>Array</li>
* <li>ArrayBuffer</li>
* <li>Blob</li>
* <li>Float32Array</li>
* <li>Float64Array</li>
* <li>Int8Array</li>
* <li>Int16Array</li>
* <li>Int32Array</li>
* <li>Number</li>
* <li>Object</li>
* <li>Uint8Array</li>
* <li>Uint8ClampedArray</li>
* <li>Uint16Array</li>
* <li>Uint32Array</li>
* <li>String</li>
* </ul>
* @param key Data key
* @param data Data
*/
async setItem(key, data) {
return await this.store.setItem(key, data);
}
/**
* Check whether the given driver is supported/registered.
* @param driver Driver name
*/
supports(driver) {
return this.store.supports(driver);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: NgForage, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: NgForage, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: NgForage, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZm9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2ZvcmFnZS9zcmMvbGliL21haW4vbmctZm9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBSS9DOztHQUVHO0FBRUgsTUFBTSxPQUFPLFFBQVMsU0FBUSxvQkFBb0I7SUFFaEQ7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFrQztRQUMxRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsS0FBSztRQUNoQixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE1BQXdCO1FBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxNQUFNLEVBQUMsQ0FBQyxDQUFDO1FBRWpELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsT0FBTyxDQUFJLEdBQVc7UUFDakMsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksS0FBSyxDQUFDLE9BQU8sQ0FBTyxRQUErRDtRQUN4RixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBYTtRQUM1QixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUk7UUFDZixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsTUFBTTtRQUNqQixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQVc7UUFDakMsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ0ksS0FBSyxDQUFDLE9BQU8sQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUMxQyxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRLENBQUMsTUFBdUI7UUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBUyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO3VHQXJJVSxRQUFROzJHQUFSLFFBQVEsY0FESSxNQUFNOzsyRkFDbEIsUUFBUTtrQkFEcEIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge0Jhc2VDb25maWd1cmFibGUsIE5nRm9yYWdlT3B0aW9uc30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7QmFzZUNvbmZpZ3VyYWJsZUltcGx9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgdHlwZSB7RHJpdmVyVHlwZX0gZnJvbSAnLi4vbWlzYy9kcml2ZXItdHlwZS50eXBlJztcbmltcG9ydCB7RHJpdmVyfSBmcm9tICcuLi9taXNjL2RyaXZlci5lbnVtJztcblxuLyoqXG4gKiBDYWNoZSBpbnN0YW5jZVxuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBOZ0ZvcmFnZSBleHRlbmRzIEJhc2VDb25maWd1cmFibGVJbXBsIGltcGxlbWVudHMgQmFzZUNvbmZpZ3VyYWJsZSB7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGRyaXZlciBiZWluZyB1c2VkLCBvciBudWxsIGlmIG5vbmUgY2FuIGJlIHVzZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFjdGl2ZURyaXZlcigpOiBEcml2ZXJUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5kcml2ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGludm9rZWQgd2l0aCBubyBhcmd1bWVudHMsIGl0IGRyb3BzIHRoZSDigJxzdG9yZeKAnSBvZiB0aGUgY3VycmVudCBpbnN0YW5jZS4gV2hlbiBpbnZva2VkIHdpdGggYW4gb2JqZWN0XG4gICAqIHNwZWNpZnlpbmcgYm90aCBuYW1lIGFuZCBzdG9yZU5hbWUgcHJvcGVydGllcywgaXQgZHJvcHMgdGhlIHNwZWNpZmllZCDigJxzdG9yZeKAnS4gV2hlbiBpbnZva2VkIHdpdGggYW4gb2JqZWN0XG4gICAqIHNwZWNpZnlpbmcgb25seSBhIG5hbWUgcHJvcGVydHksIGl0IGRyb3BzIHRoZSBzcGVjaWZpZWQg4oCcZGF0YWJhc2XigJ0gKGFuZCBhbGwgaXRzIHN0b3JlcykuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZHJvcEluc3RhbmNlKGNmZz86IExvY2FsRm9yYWdlRGJJbnN0YW5jZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGNmZyA/IHRoaXMuc3RvcmUuZHJvcEluc3RhbmNlKGNmZykgOiB0aGlzLnN0b3JlLmRyb3BJbnN0YW5jZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGV2ZXJ5IGtleSBmcm9tIHRoZSBkYXRhYmFzZSwgcmV0dXJuaW5nIGl0IHRvIGEgYmxhbmsgc2xhdGUuXG4gICAqXG4gICAqIGNsZWFyKCkgd2lsbCByZW1vdmUgPGI+ZXZlcnkgaXRlbSBpbiB0aGUgb2ZmbGluZSBzdG9yZTwvYj4uIFVzZSB0aGlzIG1ldGhvZCB3aXRoIGNhdXRpb24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xlYXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGEgY2xvbmUgb2YgdGhlIGluc3RhbmNlXG4gICAqIEBwYXJhbSBjb25maWcgT3B0aW9uYWwgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIGNsb25lKGNvbmZpZz86IE5nRm9yYWdlT3B0aW9ucyk6IE5nRm9yYWdlIHtcbiAgICBjb25zdCBpbnN0ID0gbmV3IE5nRm9yYWdlKHRoaXMuYmFzZUNvbmZpZywgdGhpcy5mYWN0KTtcbiAgICBpbnN0LmNvbmZpZ3VyZSh7Li4udGhpcy5maW5hbENvbmZpZywgLi4uY29uZmlnfSk7XG5cbiAgICByZXR1cm4gaW5zdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIGl0ZW0gZnJvbSB0aGUgc3RvcmFnZSBsaWJyYXJ5LlxuICAgKiBJZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LCBnZXRJdGVtKCkgd2lsbCByZXR1cm4gbnVsbC5cbiAgICogQHBhcmFtIGtleSBEYXRhIGtleVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEl0ZW08VD4oa2V5OiBzdHJpbmcpOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUuZ2V0SXRlbTxUPihrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0ZXJhdGUgb3ZlciBhbGwgdmFsdWUva2V5IHBhaXJzIGluIGRhdGFzdG9yZS5cbiAgICogPGk+aXRlcmF0ZWU8L2k+IGlzIGNhbGxlZCBvbmNlIGZvciBlYWNoIHBhaXIsIHdpdGggdGhlIGZvbGxvd2luZyBhcmd1bWVudHM6XG4gICAqIDxvbD5cbiAgICogICA8bGk+VmFsdWU8L2xpPlxuICAgKiAgIDxsaT5LZXk8L2xpPlxuICAgKiAgIDxsaT5pdGVyYXRpb25OdW1iZXIgLSBvbmUtYmFzZWQgbnVtYmVyPC9saT5cbiAgICogPC9vbD5cbiAgICogaXRlcmF0ZSgpIHN1cHBvcnRzIGVhcmx5IGV4aXQgYnkgcmV0dXJuaW5nIGEgbm9uLWB1bmRlZmluZWRgIHZhbHVlIGluc2lkZSBpdGVyYXRvckNhbGxiYWNrIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0gaXRlcmF0ZWVcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpdGVyYXRlPFQsIFU+KGl0ZXJhdGVlOiAodmFsdWU6IFQsIGtleTogc3RyaW5nLCBpdGVyYXRpb25OdW1iZXI6IG51bWJlcikgPT4gVSk6IFByb21pc2U8VT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLml0ZXJhdGUoaXRlcmF0ZWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmFtZSBvZiBhIGtleSBiYXNlZCBvbiBpdHMgSUQuXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGtleShpbmRleDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5rZXkoaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiBhbGwga2V5cyBpbiB0aGUgZGF0YXN0b3JlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGtleXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLmtleXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2Yga2V5cyBpbiB0aGUgb2ZmbGluZSBzdG9yZSAoaS5lLiBpdHMg4oCcbGVuZ3Ro4oCdKS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsZW5ndGgoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5sZW5ndGgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVuIHRob3VnaCBsb2NhbEZvcmFnZSBxdWV1ZXMgdXAgYWxsIG9mIGl0cyBkYXRhIEFQSSBtZXRob2QgY2FsbHMsXG4gICAqIHJlYWR5KCkgcHJvdmlkZXMgYSB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGFzeW5jaHJvbm91cyBkcml2ZXIgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyBoYXMgZmluaXNoZWQuXG4gICAqIFRoYXTigJlzIHVzZWZ1bCBpbiBjYXNlcyBsaWtlIHdoZW4gd2Ugd2FudCB0byBrbm93IHdoaWNoIGRyaXZlciBsb2NhbEZvcmFnZSBoYXMgc2V0dGxlZCBkb3duIHVzaW5nLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLnJlYWR5KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgdmFsdWUgb2YgYSBrZXkgZnJvbSB0aGUgb2ZmbGluZSBzdG9yZS5cbiAgICogQHBhcmFtIGtleSBEYXRhIGtleVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5yZW1vdmVJdGVtKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgZGF0YSB0byBhbiBvZmZsaW5lIHN0b3JlLiBZb3UgY2FuIHN0b3JlIHRoZSBmb2xsb3dpbmcgdHlwZXMgb2YgSmF2YVNjcmlwdCBvYmplY3RzOlxuICAgKiA8dWw+XG4gICAqICA8bGk+QXJyYXk8L2xpPlxuICAgKiAgPGxpPkFycmF5QnVmZmVyPC9saT5cbiAgICogIDxsaT5CbG9iPC9saT5cbiAgICogIDxsaT5GbG9hdDMyQXJyYXk8L2xpPlxuICAgKiAgPGxpPkZsb2F0NjRBcnJheTwvbGk+XG4gICAqICA8bGk+SW50OEFycmF5PC9saT5cbiAgICogIDxsaT5JbnQxNkFycmF5PC9saT5cbiAgICogIDxsaT5JbnQzMkFycmF5PC9saT5cbiAgICogIDxsaT5OdW1iZXI8L2xpPlxuICAgKiAgPGxpPk9iamVjdDwvbGk+XG4gICAqICA8bGk+VWludDhBcnJheTwvbGk+XG4gICAqICA8bGk+VWludDhDbGFtcGVkQXJyYXk8L2xpPlxuICAgKiAgPGxpPlVpbnQxNkFycmF5PC9saT5cbiAgICogIDxsaT5VaW50MzJBcnJheTwvbGk+XG4gICAqICA8bGk+U3RyaW5nPC9saT5cbiAgICogPC91bD5cbiAgICogQHBhcmFtIGtleSBEYXRhIGtleVxuICAgKiBAcGFyYW0gZGF0YSBEYXRhXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0SXRlbTxUPihrZXk6IHN0cmluZywgZGF0YTogVCk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLnNldEl0ZW08VD4oa2V5LCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBkcml2ZXIgaXMgc3VwcG9ydGVkL3JlZ2lzdGVyZWQuXG4gICAqIEBwYXJhbSBkcml2ZXIgRHJpdmVyIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdXBwb3J0cyhkcml2ZXI6IERyaXZlciB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnN1cHBvcnRzKDxzdHJpbmc+ZHJpdmVyKTtcbiAgfVxufVxuIl19