UNPKG

ngforage

Version:

localForage bindings for Angular

134 lines 13.2 kB
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