Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tsironis/lockr
A minimal API wrapper for localStorage
https://github.com/tsironis/lockr
Last synced: 11 days ago
JSON representation
A minimal API wrapper for localStorage
- Host: GitHub
- URL: https://github.com/tsironis/lockr
- Owner: tsironis
- License: mit
- Created: 2014-01-15T14:07:14.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2023-03-06T10:40:06.000Z (over 1 year ago)
- Last Synced: 2024-10-01T07:06:54.109Z (about 1 month ago)
- Language: HTML
- Size: 1.64 MB
- Stars: 816
- Watchers: 21
- Forks: 79
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Lockr logo](http://i.imgur.com/m5kPjkB.png)
> A minimal API wrapper for localStorage. Simple as your high-school locker.
[![Build Status](https://travis-ci.org/tsironis/lockr.svg?branch=master)](https://travis-ci.org/tsironis/lockr)
[![npm version](https://badge.fury.io/js/lockr.svg)](http://badge.fury.io/js/lockr)
[![CodeClimate](https://codeclimate.com/github/tsironis/lockr/badges/gpa.svg)](https://codeclimate.com/github/tsironis/lockr)
[![Dependencies](https://david-dm.org/tsironis/lockr.svg?theme=shields.io)](https://david-dm.org/tsironis/lockr)
[![devDependency Status](https://david-dm.org/tsironis/lockr/dev-status.svg)](https://david-dm.org/tsironis/lockr#info=devDependencies)Lockr (pronounced /ˈlɒkəʳ/) is an extremely lightweight library (<2kb when minified), designed to facilitate how you interact with localStorage. Saving objects and arrays, numbers or other data types, accessible via a Redis-like API, heavily inspired by [node_redis](https://github.com/mranney/node_redis/).
## How to use lockr
In order to user lockr, you firstly need to install it in your project.
```js
npm install lockr --save
```or maybe download it manually from [JSDelivr](https://www.jsdelivr.com/package/npm/lockr) and hook it in your HTML.
## API reference
```Lockr.prefix``` - String
> Set a prefix to a string value that is going to be prepended to each key saved by Lockr.
*Example*
```js
Lockr.prefix = 'lockr_';
Lockr.set('username', 'Coyote'); // Saved as string
localStorage.getItem('username');
> null
localStorage.getItem('lockr_username');
> {"data":"Coyote"}
```
*Please note that* when prefix is set, ```flush``` method deletes only keys that are prefixed, and ignores the rest.---
```Lockr.set``` - arguments: *[ key, value ]* {String, Number, Array or Object}
> Set a key to a particular value or a hash object (```Object``` or ```Array```) under a hash key.
*Example*
```js
Lockr.set('username', 'Coyote'); // Saved as string
Lockr.set('user_id', 12345); // Saved as number
Lockr.set('users', [{name: 'John Doe', age: 18}, {name: 'Jane Doe', age: 19}]);
```---
```Lockr.get``` - arguments: *[ key or hash_key, default value ]*
> Returns the saved value for given key, even if the saved value is hash object. If value is null or undefined it returns a default value.
*Example*
```js
Lockr.get('username');
> "Coyote"Lockr.get('user_id');
> 12345Lockr.get('users');
> [{name: 'John Doe', age: 18}, {name: 'Jane Doe', age: 19}]Lockr.get('score', 0):
> 0Lockr.set('score', 3):
Lockr.get('score', 0):
> 3
```---
```Lockr.rm``` - arguments: *[ key ]* {String}
> Remove a key from ```localStorage``` entirely.
*Example*
```js
Lockr.set('username', 'Coyote'); // Saved as string
Lockr.get('username');
> "Coyote"
Lockr.rm('username');
Lockr.get('username');
> undefined
```---
```Lockr.sadd``` - arguments *[ key, value ]*{String, Number, Array or Object}
> Adds a unique value to a particular set under a hash key.
*Example*
```js
Lockr.sadd("wat", 1); // [1]
Lockr.sadd("wat", 2); // [1, 2]
Lockr.sadd("wat", 1); // [1, 2]
```---
```Lockr.smembers``` - arguments *[ key ]*
> Returns the values of a particular set under a hash key.
*Example*
```js
Lockr.sadd("wat", 42);
Lockr.sadd("wat", 1337);
Lockr.smembers("wat"); // [42, 1337]
```---
```Lockr.sismember``` - arguments *[ key, value ]*
> Returns whether the value exists in a particular set under a hash key.
*Example*
```js
Lockr.sadd("wat", 1);
Lockr.sismember("wat", 1); // true
Lockr.sismember("wat", 2); // false
```---
```Lockr.srem``` - arguments *[ key, value ]*
> Removes a value from a particular set under a hash key.
*Example*
```js
Lockr.sadd("wat", 1);
Lockr.sadd("wat", 2);
Lockr.srem("wat", 1);
Lockr.smembers("wat"); // [2]
```---
```Lockr.getAll``` - arguments: *null*
> Returns all saved values & objects, in an ```Array```
*Example*
```js
Lockr.getAll();
> ["Coyote", 12345, [{name: 'John Doe', age: 18}, {name: 'Jane Doe', age: 19}]]
``````Lockr.getAll``` - arguments: *[includeKeys] {Boolean}*
> Returns contents of `localStorage` as an Array of dictionaries that contain key and value of the saved item.
*Example*
```js
Lockr.getAll(true);
> [{"username": "Coyote"}, {"user_id": 12345}, {"users": [{name: 'John Doe', age: 18}, {name: 'Jane Doe', age: 19}]}]
```
---```Lockr.flush()``` - arguments: *null*
> Empties localStorage().
*Example*
```js
localStorage.length;
> 3
Lockr.flush();
localStorage.length;
> 0
```