lodash.throttle
Advanced tools
Comparing version 2.4.1 to 3.0.0
97
index.js
/** | ||
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/> | ||
* Build: `lodash modularize modern exports="npm" -o ./npm/` | ||
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/> | ||
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE> | ||
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors | ||
* Available under MIT license <http://lodash.com/license> | ||
* lodash 3.0.0 (Custom Build) <https://lodash.com/> | ||
* Build: `lodash modern modularize exports="npm" -o ./` | ||
* Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> | ||
* Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE> | ||
* Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors | ||
* Available under MIT license <https://lodash.com/license> | ||
*/ | ||
var debounce = require('lodash.debounce'), | ||
isFunction = require('lodash.isfunction'), | ||
isObject = require('lodash.isobject'); | ||
isFunction = require('lodash.isfunction'); | ||
/** Used as an internal `_.debounce` options object */ | ||
/** Used as the `TypeError` message for "Functions" methods. */ | ||
var FUNC_ERROR_TEXT = 'Expected a function'; | ||
/** Used as an internal `_.debounce` options object by `_.throttle`. */ | ||
var debounceOptions = { | ||
@@ -21,20 +23,26 @@ 'leading': false, | ||
/** | ||
* Creates a function that, when executed, will only call the `func` function | ||
* at most once per every `wait` milliseconds. Provide an options object to | ||
* indicate that `func` should be invoked on the leading and/or trailing edge | ||
* of the `wait` timeout. Subsequent calls to the throttled function will | ||
* return the result of the last `func` call. | ||
* Creates a function that only invokes `func` at most once per every `wait` | ||
* milliseconds. The created function comes with a `cancel` method to cancel | ||
* delayed invocations. Provide an options object to indicate that `func` | ||
* should be invoked on the leading and/or trailing edge of the `wait` timeout. | ||
* Subsequent calls to the throttled function return the result of the last | ||
* `func` call. | ||
* | ||
* Note: If `leading` and `trailing` options are `true` `func` will be called | ||
* **Note:** If `leading` and `trailing` options are `true`, `func` is invoked | ||
* on the trailing edge of the timeout only if the the throttled function is | ||
* invoked more than once during the `wait` timeout. | ||
* | ||
* See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) | ||
* for details over the differences between `_.throttle` and `_.debounce`. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @category Functions | ||
* @category Function | ||
* @param {Function} func The function to throttle. | ||
* @param {number} wait The number of milliseconds to throttle executions to. | ||
* @param {number} wait The number of milliseconds to throttle invocations to. | ||
* @param {Object} [options] The options object. | ||
* @param {boolean} [options.leading=true] Specify execution on the leading edge of the timeout. | ||
* @param {boolean} [options.trailing=true] Specify execution on the trailing edge of the timeout. | ||
* @param {boolean} [options.leading=true] Specify invoking on the leading | ||
* edge of the timeout. | ||
* @param {boolean} [options.trailing=true] Specify invoking on the trailing | ||
* edge of the timeout. | ||
* @returns {Function} Returns the new throttled function. | ||
@@ -44,9 +52,10 @@ * @example | ||
* // avoid excessively updating the position while scrolling | ||
* var throttled = _.throttle(updatePosition, 100); | ||
* jQuery(window).on('scroll', throttled); | ||
* jQuery(window).on('scroll', _.throttle(updatePosition, 100)); | ||
* | ||
* // execute `renewToken` when the click event is fired, but not more than once every 5 minutes | ||
* jQuery('.interactive').on('click', _.throttle(renewToken, 300000, { | ||
* 'trailing': false | ||
* })); | ||
* // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes | ||
* var throttled = _.throttle(renewToken, 300000, { 'trailing': false }) | ||
* jQuery('.interactive').on('click', throttled); | ||
* | ||
* // cancel a trailing throttled call | ||
* jQuery(window).on('popstate', throttled.cancel); | ||
*/ | ||
@@ -58,3 +67,3 @@ function throttle(func, wait, options) { | ||
if (!isFunction(func)) { | ||
throw new TypeError; | ||
throw new TypeError(FUNC_ERROR_TEXT); | ||
} | ||
@@ -64,12 +73,40 @@ if (options === false) { | ||
} else if (isObject(options)) { | ||
leading = 'leading' in options ? options.leading : leading; | ||
trailing = 'trailing' in options ? options.trailing : trailing; | ||
leading = 'leading' in options ? !!options.leading : leading; | ||
trailing = 'trailing' in options ? !!options.trailing : trailing; | ||
} | ||
debounceOptions.leading = leading; | ||
debounceOptions.maxWait = wait; | ||
debounceOptions.maxWait = +wait; | ||
debounceOptions.trailing = trailing; | ||
return debounce(func, wait, debounceOptions); | ||
} | ||
/** | ||
* Checks if `value` is the language type of `Object`. | ||
* (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) | ||
* | ||
* **Note:** See the [ES5 spec](https://es5.github.io/#x8) for more details. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @category Lang | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is an object, else `false`. | ||
* @example | ||
* | ||
* _.isObject({}); | ||
* // => true | ||
* | ||
* _.isObject([1, 2, 3]); | ||
* // => true | ||
* | ||
* _.isObject(1); | ||
* // => false | ||
*/ | ||
function isObject(value) { | ||
// Avoid a V8 JIT bug in Chrome 19-20. | ||
// See https://code.google.com/p/v8/issues/detail?id=2291 for more details. | ||
var type = typeof value; | ||
return type == 'function' || (value && type == 'object') || false; | ||
} | ||
module.exports = throttle; |
@@ -1,3 +0,3 @@ | ||
Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/> | ||
Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas, | ||
Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> | ||
Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, | ||
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/> | ||
@@ -22,2 +22,2 @@ | ||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
{ | ||
"name": "lodash.throttle", | ||
"version": "2.4.1", | ||
"description": "The Lo-Dash function `_.throttle` as a Node.js module generated by lodash-cli.", | ||
"homepage": "http://lodash.com/custom-builds", | ||
"version": "3.0.0", | ||
"description": "The modern build of lodash’s `_.throttle` as a module.", | ||
"homepage": "https://lodash.com/", | ||
"icon": "https://lodash.com/icon.svg", | ||
"license": "MIT", | ||
"keywords": ["functional", "lodash", "lodash-modularized", "server", "util"], | ||
"keywords": "lodash, lodash-modularized, stdlib, util", | ||
"author": "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)", | ||
"contributors": [ | ||
"John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)", | ||
"Benjamin Tan <demoneaux@gmail.com> (https://d10.github.io/)", | ||
"Blaine Bublitz <blaine@iceddev.com> (http://www.iceddev.com/)", | ||
"Kit Cambridge <github@kitcambridge.be> (http://kitcambridge.be/)", | ||
"Mathias Bynens <mathias@qiwi.be> (http://mathiasbynens.be/)" | ||
"Mathias Bynens <mathias@qiwi.be> (https://mathiasbynens.be/)" | ||
], | ||
"bugs": "https://github.com/lodash/lodash-cli/issues", | ||
"repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" }, | ||
"repository": "lodash/lodash", | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }, | ||
"dependencies": { | ||
"lodash.debounce": "~2.4.1", | ||
"lodash.isfunction": "~2.4.1", | ||
"lodash.isobject": "~2.4.1" | ||
"lodash.debounce": "^3.0.0", | ||
"lodash.isfunction": "^3.0.0" | ||
} | ||
} |
@@ -1,15 +0,20 @@ | ||
# lodash.throttle v2.4.1 | ||
# lodash.throttle v3.0.0 | ||
The [Lo-Dash](http://lodash.com/) function [`_.throttle`](http://lodash.com/docs#throttle) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli). | ||
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.throttle` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. | ||
## Author | ||
## Installation | ||
| [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton "Follow @jdalton on Twitter") | | ||
|---| | ||
| [John-David Dalton](http://allyoucanleet.com/) | | ||
Using npm: | ||
## Contributors | ||
```bash | ||
$ {sudo -H} npm i -g npm | ||
$ npm i --save lodash.throttle | ||
``` | ||
| [![twitter/blainebublitz](http://gravatar.com/avatar/ac1c67fd906c9fecd823ce302283b4c1?s=70)](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [![twitter/kitcambridge](http://gravatar.com/avatar/6662a1d02f351b5ef2f8b4d815804661?s=70)](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | | ||
|---|---|---| | ||
| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) | | ||
In Node.js/io.js: | ||
```js | ||
var throttle = require('lodash.throttle'); | ||
``` | ||
See the [documentation](https://lodash.com/docs#throttle) or [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash.throttle) for more details. |
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
6656
2
102
0
21
+ Addedlodash._getnative@3.9.1(transitive)
+ Addedlodash.debounce@3.1.1(transitive)
+ Addedlodash.isfunction@3.0.9(transitive)
- Removedlodash.isobject@~2.4.1
- Removedlodash._isnative@2.4.1(transitive)
- Removedlodash._objecttypes@2.4.1(transitive)
- Removedlodash.debounce@2.4.1(transitive)
- Removedlodash.isfunction@2.4.1(transitive)
- Removedlodash.isobject@2.4.1(transitive)
- Removedlodash.now@2.4.1(transitive)
Updatedlodash.debounce@^3.0.0
Updatedlodash.isfunction@^3.0.0