onionskin v1.1.6
OnionSkin
OnionSkin is multi-layer cache manager library that works with Node.js and vanilla javascript
Installation
You can either install via npm
$ npm install onionskinOr via bower
$ bower install onionskinOr you can just grab a copy of it here
Basic Usage
// Library is exposed on the browser with browserify for API consistency with node.js
var OnionSkin = require('onionskin');
// Initialize a pool
var pool = new OnionSkin();
pool.get('my/key/path', function (err) {
// Data is either inexistent or expired
return slowFuncThatReturnsPromise();
}).then(function (value) {
// The value that was either on cache or was just generated
console.log(value);
});Documentation
You can find more usage examples at the website's Getting Started section Also there is the API Documentation
Need help?
You can:
- Talk to me at @onionskinjs
- Ask a question at StackOverflow
- Send me an email at contact@onionskin.io
Want to help?
So you decided you want to help... This is awesome!!! Follow this steps and I will be really glad to merge your work and add you to the contributors!
- Fork the project
Clone it and create a branch with the name of the feature you intend to add
$ git clone git@github.com:username/onionskin.git $ git checkout -b new-feature-nameInstall the dependencies
$ bower install # for browser tests $ npm install # for node.js testsPlease add tests to your features.
```
mocha test/stash/drivers/*.js
```
you also can run the tests on browser
```
open test/index.html
```- Send me a pull request
What is coming next
- WebSQL, Cassandra, MongoDB , ... drivers
- Benchmarks
- More examples
Contributors
This project was created by @tadeuzagallo inspired by a PHP library named Stash and was originally Stash.js. If you want to join just follow the instructions, any help will be very welcome.
Changelog
1.0.1
- The function to generate missing cache should be passed as the last parameter to
pool.get, although generating cachePromise.catchis still supported the cache will never be unlocked ifitem.saveoritem.setare not called. - Also when the cache generator function is passed as parameter, there is no need to call either
item.saveoritem.set, just return the value you want to be cached and it will automatically saved and passed along to the promise chain.

