added unit testing, and started implementing unit tests...phew
This commit is contained in:
65
node_modules/one-time/README.md
generated
vendored
Normal file
65
node_modules/one-time/README.md
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
# one-time
|
||||
|
||||
[](http://unshift.io)[](http://browsenpm.org/package/one-time)[](https://travis-ci.org/unshiftio/one-time)[](https://david-dm.org/unshiftio/one-time)[](https://coveralls.io/r/unshiftio/one-time?branch=master)[](http://webchat.freenode.net/?channels=unshift)
|
||||
|
||||
Call the supplied function exactly one time. This prevents double callback
|
||||
execution. This module can be used on both node and browsers using browserify.
|
||||
No magical ES5/6 methods used unlike the `once` module does.
|
||||
|
||||
## Installation
|
||||
|
||||
```
|
||||
npm install one-time
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Simply supply the function with the function that should only be called one
|
||||
time:
|
||||
|
||||
```js
|
||||
var one = require('one-time');
|
||||
|
||||
function load(file, fn) {
|
||||
fn = one(fn);
|
||||
|
||||
eventemitter.once('load', fn);
|
||||
eventemitter.once('error', fn);
|
||||
|
||||
// do stuff
|
||||
eventemitter.emit('error', new Error('Failed to load, but still finished'));
|
||||
eventemitter.emit('load');
|
||||
}
|
||||
|
||||
function example(fn) {
|
||||
fn = one(fn);
|
||||
|
||||
fn();
|
||||
fn('also receives all arguments');
|
||||
fn('it returns the same value') === 'bar';
|
||||
fn('never');
|
||||
fn('gonna');
|
||||
fn('give');
|
||||
fn('you');
|
||||
fn('up');
|
||||
}
|
||||
|
||||
example(function () {
|
||||
return 'bar'
|
||||
});
|
||||
```
|
||||
|
||||
### Why not `once`?
|
||||
|
||||
The main reason is that `once` cannot be used in a browser environment unless it's
|
||||
ES5 compatible. For a module as simple as this I find that unacceptable. In addition
|
||||
to that it super heavy on the dependency side. So it's totally not suitable to be
|
||||
used in client side applications.
|
||||
|
||||
In addition to that we make sure that your code stays easy to debug as returned
|
||||
functions are named in the same way as your supplied functions. Making heap
|
||||
inspection and stacktraces easier to understand.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
Reference in New Issue
Block a user