Skip to content
Provides an unified implementation of original store.js (wrapped) + store.js in memory for testing + wrapper for avoiding local storage conflicts. AMD.
JavaScript Shell Perl
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
spec
test_runner
.gitignore
.travis.yml
LICENSE
README.md improved README
bower.json
generic_store.js
package.json
store_impl_local_storage.js
store_impl_memory.js

README.md

generic_store.js

Build Status NPM version Bower version Project status license status Total views Gittip

STILL IN PROGRESS - MISSING FEATURES - API MAY CHANGE

Introduction

generic_store.js wraps store.js and add :

  • an implementation in memory for safe tests or other use
  • an (optional) automatic key prefixing for avoiding conflicts (NOT IMPLEMENTED)

NOTE : ONLY set() AND get() ARE IMPLEMENTED FOR NOW !

License : public domain (http://unlicense.org/)

User Story

In you web app, you use the convenient local storage instead of fat cookies. Of course, you use store.js (https://github.com/marcuswestin/store.js) to access the local storage.

Now there are two problems :

  • it's unsafe to unit test your app since local storage is persistent and shared
  • you may mess with another local storage user which use the same keys

Solution :

  • Have a store.js implementation in memory for tests
  • Have an automatic prefixing of keys

Usage

define(
[
    'generic_store/generic_store',
],
function(GenericStore) {
    "use strict";

    // new store, in memory, guaranteed to be empty
    var store1 = GenericStore.make_new("memory");
    // new store, in memory, guaranteed to be empty, different from the previous one
    var store2 = GenericStore.make_new("memory");
    // existing store (local storage), "existing" reminds us that it may already contain data
    var store3 = GenericStore.get_existing("local");

    // now use your store like store.js
    store.set('username', 'marcus');
    store.get('username');
    store.set('user', { name: 'marcus', likes: 'javascript' });

Installation

Bower : bower install generic_store.js Npm : npm install generic_store

Unit tests

in the 'spec' folder. See also readme.txt in the 'test_runner' folder.

Something went wrong with that request. Please try again.