Only call a function once
When called multiple times it will return the return value from the first call.
Unlike the module once, this one isn't naughty extending Function.prototype
.
$ npm install --save onetime
let i = 0;
const foo = onetime(() => i++);
foo(); //=> 0
foo(); //=> 0
foo(); //=> 0
Type: function
Function that should only be called once.
Type: boolean
Default: false
Set to true
if you want it to fail with a nice and descriptive error when called more than once.
MIT © Sindre Sorhus
# onetime [![Build Status](https://travis-ci.org/sindresorhus/onetime.svg?branch=master)](https://travis-ci.org/sindresorhus/onetime) > Only call a function 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 ``` ## API ### onetime(function, [shouldThrow]) #### function Type: `function` Function that should only be called once. #### shouldThrow Type: `boolean` Default: `false` ![](screenshot-shouldthrow.png) Set to `true` if you want it to fail with a nice and descriptive error when called more than once. ## License MIT © [Sindre Sorhus](http://sindresorhus.com)