Skip to content

A simple, lightweight JavaScript API for handling browser localStorage , it is easy to pick up and use, has a reasonable footprint 2.36kb(gzipped: 1.04kb), and has no dependencies.

License

Notifications You must be signed in to change notification settings

MoumitaM/store.js

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

JavaScript localStorage

Buy me a coffee Downloads Build and test storejs Coverage Status README-zh.md

A simple, lightweight JavaScript API for handling browser localStorage, it is easy to pick up and use, has a reasonable footprint 2.08kb(gzipped: 0.97kb), and has no dependencies. It should not interfere with any JavaScript libraries or frameworks.

Old v1 version document preview.

Features:

๐Ÿš€ Has no dependencies
๐ŸŒฑ Works in all browsers
๐Ÿ”ฅ Heavily tested
๐Ÿ“ฆ Supports AMD/CommonJS
๐Ÿ’ฅ store.min.js 2.08kb(gzipped: 0.97kb)

Usage

Installed via npm. You will need Node.js installed on your system.

$ npm install storejs --save
import store from 'storejs';

store('test', 'tank', 1)

Or manually download and link storejs in your HTML, It can also be downloaded via UNPKG or jsDelivr CDN:

CDN: UNPKG | jsDelivr | Githack | Statically | bundle.run

<script src="https://unpkg.com/storejs/dist/store.js"></script>
<script type="text/javascript">
  store('test', 'tank');
</script>

Basic Usage

store(key, data);                 // Single storage string data
store({key: data, key2: data2});  // Bulk storage of multiple string data
store(key);              // Get `key` string data
store('?key');           // Determine if the `key` exists
store();                 // Get all key/data
//store(false);๐Ÿ”ซ        // (Deprecated) because it is easy to empty the storage because of a null value or an error
//store(key, false); ๐Ÿ”ซ  // (Deprecated)

store.set(key, data[, overwrite]);    // === store(key, data);
store.set({key: data, key2: data2})   // === store({key: data, key2: data});
store.get(key[, alt]);                // === store(key);
store.get('?key');                    // Determine if the `key` exists
store.get('key1', 'key2', 'key3');    // Get `key1`,`key2`,`key3` data
store.remove(key);                    // ===store(key,false)
store.clear();                        // Clean all key/data
store.keys();                         // Returns an array of all the keys
store.forEach(callback);              // Loop traversal, return false to end traversal
store.search(string);                 // Search method

store.has(key); //โ‡’ Determine if there is a return true/false

//โ‡’ Provide callback method to process data
store('test', (key,val) => {
  console.log(val) // Processing the data obtained through the test here
  return [3,4,5] // Return data and set store
})

store(['key', 'key2'], (key) => {
  // Get data processing of multiple keys, return and save;
  console.log('key:', key)
  return '้€ไธชๆ›ดๆ”นๆ•ฐๆฎ'
})

API

set

Store or delete string data individually store.set(key, data[, overwrite]);. Same effect store(key, data);.

store.set('wcj', '1')   //โ‡’  1
store.set('wcj')        //โ‡’  Delete `wcj` and string data

get

Get the string data of the key store.get(key[, alt]). Same effect store(key).

store.get('wcj1') // Get the string data of `wcj1`
store('wcj1')     // Same function as above

setAll

Bulk storage of multiple string data store.setAll(data[, overwrite]). Same effect store({key: data, key2: data});.

store.setAll({
  "wcj1": 123,
  "wcj2": 345
}) // Store two string data

store.setAll(["w1", "w2", "w3"]) 
// Store three strings of data
//  0โ‡’ "w1"
//  1โ‡’ "w2"
//  2โ‡’ "w3"

getAll ๐Ÿ”ซ

Get all key/data store.getAll(). Same effect store().

store.getAll() // โ‡’ JSON
store() // Same function as above

clear

Clear all key/data. store.clear()

โš ๏ธ Deprecate store(false) because it is easy to empty the library because of passing in a null value or reporting an error

store.clear()

keys

Return an array of all keys. store.keys().

store.keys() //โ‡’ ["w1", "w2", "w3"]

has

Judge whether it exists, return true/false store.has(key).

store.has('w1'); //โ‡’ true

remove

Delete key string data including key store.remove(key)

store.remove('w1');  // Delete w1 and return the value of w1
store('w1', false)   // So also delete w1

forEach

Loop traversal, return false to end the traversal

store.forEach((k, d) => {
  console.log(k, d);
  if (k== 3) return false
});

Storage Event

Responding to storage changes with the StorageEvent

if (window.addEventListener) {
  window.addEventListener('storage', handleStorage,false);
} else if (window.attachEvent){
  window.attachEvent('onstorage', handleStorage);
}
function handleStorage(e) {
  if(!e) { e=window.event; }
  //showStorage();
}
Property Type Description
key String The named key that was added, removed, or moddified
oldValue Any The previous value(now overwritten), or null if a new item was added
newValue Any The new value, or null if an item was added
url/uri String The page that called the method that triggered this change

Chained Call

store.set('ad', 234).get('ad')

TODO

  • store.get([key,key2]) Get method, return json
  • store([key,key2]) Get method, return json
  • onStorage Method test cases, and implementation

Related

  • cookiejs ๐Ÿช A simple, lightweight JavaScript API for handling browser cookies , it is easy to pick up and use, has a reasonable footprint(~2kb, gzipped: 0.95kb), and has no dependencies. It should not interfere with any JavaScript libraries or frameworks.

Contributors

As always, thanks to our amazing contributors!

Made with action-contributors.

License

Licensed under the MIT License.

About

A simple, lightweight JavaScript API for handling browser localStorage , it is easy to pick up and use, has a reasonable footprint 2.36kb(gzipped: 1.04kb), and has no dependencies.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 92.3%
  • TypeScript 7.7%