@omostan/ngx-idle
Version:
A module for responding to idle users in Angular applications. this is a forked version of the original @ng-Idle
61 lines • 5.28 kB
JavaScript
/*
* Represents an alternative storage for browser that doesn't support localstorage. (i.e. Safari in
* private mode)
* @implements Storage
*/
export class AlternativeStorage {
constructor() {
this.storageMap = {};
}
/*
* Returns an integer representing the number of data items stored in the storageMap object.
*/
get length() {
return Object.keys(this.storageMap).length;
}
/*
* Remove all keys out of the storage.
*/
clear() {
this.storageMap = {};
}
/*
* Return the key's value
*
* @param key - name of the key to retrieve the value of.
* @return The key's value
*/
getItem(key) {
if (typeof this.storageMap[key] !== 'undefined') {
return this.storageMap[key];
}
return null;
}
/*
* Return the nth key in the storage
*
* @param index - the number of the key you want to get the name of.
* @return The name of the key.
*/
key(index) {
return Object.keys(this.storageMap)[index] || null;
}
/*
* Remove a key from the storage.
*
* @param key - the name of the key you want to remove.
*/
removeItem(key) {
this.storageMap[key] = undefined;
}
/*
* Add a key to the storage, or update a key's value if it already exists.
*
* @param key - the name of the key.
* @param value - the value you want to give to the key.
*/
setItem(key, value) {
this.storageMap[key] = value;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWx0ZXJuYXRpdmVzdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FsdGVybmF0aXZlc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNVLGVBQVUsR0FBUSxFQUFFLENBQUM7SUE0RC9CLENBQUM7SUExREM7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLEdBQVc7UUFDakIsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssV0FBVyxFQUFFO1lBQy9DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLEtBQWE7UUFDZixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0NBSUYiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBSZXByZXNlbnRzIGFuIGFsdGVybmF0aXZlIHN0b3JhZ2UgZm9yIGJyb3dzZXIgdGhhdCBkb2Vzbid0IHN1cHBvcnQgbG9jYWxzdG9yYWdlLiAoaS5lLiBTYWZhcmkgaW5cclxuICogcHJpdmF0ZSBtb2RlKVxyXG4gKiBAaW1wbGVtZW50cyBTdG9yYWdlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQWx0ZXJuYXRpdmVTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XHJcbiAgcHJpdmF0ZSBzdG9yYWdlTWFwOiBhbnkgPSB7fTtcclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm5zIGFuIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2YgZGF0YSBpdGVtcyBzdG9yZWQgaW4gdGhlIHN0b3JhZ2VNYXAgb2JqZWN0LlxyXG4gICAqL1xyXG4gIGdldCBsZW5ndGgoKSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5zdG9yYWdlTWFwKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFJlbW92ZSBhbGwga2V5cyBvdXQgb2YgdGhlIHN0b3JhZ2UuXHJcbiAgICovXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JhZ2VNYXAgPSB7fTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIHRoZSBrZXkncyB2YWx1ZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGtleSAtIG5hbWUgb2YgdGhlIGtleSB0byByZXRyaWV2ZSB0aGUgdmFsdWUgb2YuXHJcbiAgICogQHJldHVybiBUaGUga2V5J3MgdmFsdWVcclxuICAgKi9cclxuICBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuc3RvcmFnZU1hcFtrZXldICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlTWFwW2tleV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIHRoZSBudGgga2V5IGluIHRoZSBzdG9yYWdlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaW5kZXggLSB0aGUgbnVtYmVyIG9mIHRoZSBrZXkgeW91IHdhbnQgdG8gZ2V0IHRoZSBuYW1lIG9mLlxyXG4gICAqIEByZXR1cm4gVGhlIG5hbWUgb2YgdGhlIGtleS5cclxuICAgKi9cclxuICBrZXkoaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuc3RvcmFnZU1hcClbaW5kZXhdIHx8IG51bGw7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFJlbW92ZSBhIGtleSBmcm9tIHRoZSBzdG9yYWdlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGtleSAtIHRoZSBuYW1lIG9mIHRoZSBrZXkgeW91IHdhbnQgdG8gcmVtb3ZlLlxyXG4gICAqL1xyXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmFnZU1hcFtrZXldID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBBZGQgYSBrZXkgdG8gdGhlIHN0b3JhZ2UsIG9yIHVwZGF0ZSBhIGtleSdzIHZhbHVlIGlmIGl0IGFscmVhZHkgZXhpc3RzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGtleSAtIHRoZSBuYW1lIG9mIHRoZSBrZXkuXHJcbiAgICogQHBhcmFtIHZhbHVlIC0gdGhlIHZhbHVlIHlvdSB3YW50IHRvIGdpdmUgdG8gdGhlIGtleS5cclxuICAgKi9cclxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JhZ2VNYXBba2V5XSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gIFtpbmRleDogbnVtYmVyXTogc3RyaW5nO1xyXG59XHJcbiJdfQ==