Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/allain/reuser
A simple reuse pool of one. Makes automatic cleanup of a single shared resource (think db connection) easy.
https://github.com/allain/reuser
Last synced: 4 days ago
JSON representation
A simple reuse pool of one. Makes automatic cleanup of a single shared resource (think db connection) easy.
- Host: GitHub
- URL: https://github.com/allain/reuser
- Owner: allain
- Created: 2015-08-26T15:23:28.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-09-19T22:26:49.000Z (over 8 years ago)
- Last Synced: 2024-04-26T20:07:46.540Z (9 months ago)
- Language: JavaScript
- Size: 9.77 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# reuser
Reuser is a simple resource manager that handles setup and teardown for you.
I needed to handle closing db connections when my cli apps were done but I didn't want to pass the connection from the
top of have to explicitly call teardown myself.## Installation
npm install reuser
## Usage
```js
var reuser = require('reuser');function setupDB(cb) {
// build db here
cb(null, db);
}function tearownDB(cb) {
// down teardown here
cb();
}// Create a reuser function
var useDb = reuser(setupDB, teardownDB);useDb(function(db, cb) {
// Do something with db
cb();
})useDb(function(db, cb) {
// Do somethng with db
// ...
useDb(function(db, cb) {
// Do something with same db here
cb(null, 'result');
}, cb);
});```
If you're more into the terseness of Promises you can do this too:
```js
var reuser = require('reuser');
function setupDB() {
// create db or Promise resolving to db
return db;
}function teardownDB() {
// down teardown here
}// Create a reuser function
var useDb = reuser(setupDB, teardownDB);useDb(function(db) {
// Do something with db and return a Promise if the action is asynchronous
return Promise.resolve('result');
}).then(function(result) {
// .. use result here
});
```By default resources are torndown as soon as the use function is complete. If you would like to reuse the resource with
a window of time (in ms), you may pass in an optional teardownDelay option like below:```js
var useDb = reuser(setupDB, teardownDB, { teardownDelay: 1000 });
```