| # onetime [](https://travis-ci.org/sindresorhus/onetime) |
| |
| > Ensure a function is only called once |
| |
| When called multiple times it will return the return value from the first call. |
| |
| *Unlike the module [once](https://github.com/isaacs/once), this one isn't naughty extending `Function.prototype`.* |
| |
| |
| ## Install |
| |
| ``` |
| $ npm install --save onetime |
| ``` |
| |
| |
| ## Usage |
| |
| ```js |
| let i = 0; |
| |
| const foo = onetime(() => i++); |
| |
| foo(); //=> 0 |
| foo(); //=> 0 |
| foo(); //=> 0 |
| ``` |
| |
| ```js |
| const foo = onetime(() => {}, {throw: true}); |
| |
| foo(); |
| |
| foo(); |
| //=> Error: Function `foo` can only be called once |
| ``` |
| |
| |
| ## API |
| |
| ### onetime(fn, [options]) |
| |
| Returns a function that only calls `fn` once. |
| |
| #### fn |
| |
| Type: `Function` |
| |
| Function that should only be called once. |
| |
| #### options |
| |
| Type: `Object` |
| |
| ##### throw |
| |
| Type: `boolean`<br> |
| Default: `false` |
| |
| Throw an error when called more than once. |
| |
| |
| ## License |
| |
| MIT © [Sindre Sorhus](https://sindresorhus.com) |