0.4.0 • Published 10 years ago

storeit-value v0.4.0

Weekly downloads
27
License
-
Repository
github
Last release
10 years ago

storeit-value

Provides a simple interface to read/write and observe changes to a storeit value.

Where storeit exposes an api to manage all values stored, storeit-value provides access to a single value.

Less talk more rock...

// Create a `storeit` store with the super sweet `storeit-webstorage` package.

var Storeit = require("storeit-webstorage").StoreitLocal; // use an HTML5 local storage provider.
var StoreitValue = require("storeit-value");

var todoStore = new Storeit("todos");

var laundryTodo = new StoreitValue(todoStore, {
    id: 1
    title: "Laundry",
    isDone: false
});

// The key used by the store is exposed as a getter.
var key = laundryTodo.key; // `storeit` defaults this to `id` property.

// Get a property.
var isDone = laundryTodo.get("isDone");

// Check for a property
var hasTitle = laundDryTodo.has("title");

// Set a property.
laundryTodo.set("title", "DO LAUNDRY!!"); // Auto saved into storage.

// Set a few properties.
laundryTodo.set({ title: "Do the Laundry.", isDone: true }); // Both are saved!

// Listen for changes.
function listener(changes) {
    console.log(changes); // From the above set would output `{title: "Do the Laundry.", isDone: true }`
}

laundryTodo.on("changed", listener);
laundryTodo.off("changed", listener);

In addition, you can extend StoreitValue with custom types!

// Returns a function constructor, cool!
var TodoValue = StoreitValue.extend({
    store: todoStore,
    fields: ["title", "isDone"]
});

var laundryTodo = new TodoValue({ id: 1, title: "Laundry", isDone: false });

// `laundryTodo` is an instanceof StoreitValue, so it exposes the same api:
// `get/set`, `on/off`

// In addition... getters and setters!

laundryTodo.isDone = true;
console.log(laundryTodo.title);

Githooks

For developers contributing to this repo's source code, please run the following npm script:

npm run githooks

This script provides:

  • pre commit: Runs jshint before commit is added to history.
  • pre push: Runs tests before code is pushed up to remote.
0.4.0

10 years ago

0.3.0

10 years ago

0.2.0

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago