https://github.com/donavon/storeit-value
Provides an object that knows how to read/write to a value in the store.
https://github.com/donavon/storeit-value
Last synced: 7 months ago
JSON representation
Provides an object that knows how to read/write to a value in the store.
- Host: GitHub
- URL: https://github.com/donavon/storeit-value
- Owner: donavon
- License: mit
- Created: 2015-07-10T16:45:45.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2015-10-30T20:20:34.000Z (almost 10 years ago)
- Last Synced: 2025-01-07T17:16:26.978Z (9 months ago)
- Language: JavaScript
- Size: 332 KB
- Stars: 0
- Watchers: 9
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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...
```javascript
// 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!
```javascript
// 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.