debounce-queue
Advanced tools
Comparing version 0.1.0 to 0.2.0
11
index.js
@@ -17,2 +17,3 @@ const defaultEnqueue = require('./enqueue'); | ||
let queue = []; | ||
let sleeping = false; | ||
@@ -25,2 +26,3 @@ const enqueue = opts.enqueue || defaultEnqueue; | ||
function debounced(data) { | ||
if (sleeping) return; | ||
const queueCopy = queue.slice() | ||
@@ -48,2 +50,5 @@ const ret = enqueue(data, queueCopy, (_data = data, queue = queueCopy) => defaultEnqueue(_data, queue)); | ||
if (flush.length) { | ||
if (opts.sleep) { | ||
sleeping = true; | ||
} | ||
ret = callback(flush); | ||
@@ -53,4 +58,8 @@ } | ||
if (ret && ret.then) { | ||
ret.then(setNextTimer); | ||
ret.then(() => { | ||
sleeping = false; | ||
setNextTimer(); | ||
}); | ||
} else { | ||
sleeping = false; | ||
setNextTimer(); | ||
@@ -57,0 +66,0 @@ } |
{ | ||
"name": "debounce-queue", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"description": "Like lodash.debounce but you get an array of all previous (unique) events", | ||
"repository": "laggingreflex/debounce-queue" | ||
} |
@@ -39,2 +39,10 @@ # debounce-queue | ||
## Options | ||
### `sleep` (boolean) (default: false) | ||
Sleeps while callback is being awaited. Helps prevent feedback loop when a process modifies files in the same path it's watching for changes. | ||
Be sure to return a promise in your callback. | ||
## Extras | ||
@@ -41,0 +49,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
26946
867
59
0