@johngw/stream
Version:
Reactive programming tools using the WHATWG Streams API.
58 lines • 1.58 kB
JavaScript
import { DebounceTransformer } from './debounce/Transformer.js';
import { DebounceTrailingBehavior } from './debounce/TrailingBehavior.js';
export { DebounceTrailingBehavior };
export * from './debounce/BackOffBehavior.js';
export * from './debounce/State.js';
export * from './debounce/LeadingBehavior.js';
/**
* Delays queuing until after `ms` milliseconds have elapsed
* since the last time this transformer received anything.
* The queuing behavior is configurable.
*
* @see {@link DebounceLeadingBehavior:class}
* @see {@link DebounceTrailingBehavior:class}
* @see {@link DebounceBackOffBehavior:class}
* @group Transformers
* @example
* Using the trailing behavior.
* ```
* --a-b-c--------------d-----------
*
* debounce(20)
* // Same as...
* debounce(20, new DebounceTrailingBehavior())
*
* -------------c---------------d---
* ```
*
* @example
* Using the leading behavior.
* ```
* --a-b-c--------------d-----------
*
* debounce(20, new DebounceLeadingBehavior())
*
* ---a------------------d----------
* ```
*
* @example
* Using both leading and trailing behaviors
* ```
* --a-b-c--------------d-----------
*
* debounce(20, [
* new DebounceLeadingBehavior(),
* new DebounceTrailingBehavior()
*])
*
* ---a----------c--------d----------
* ```
*/
export function debounce(ms, behaviors) {
return new TransformStream(new DebounceTransformer(ms, !behaviors
? [new DebounceTrailingBehavior()]
: Array.isArray(behaviors)
? behaviors
: [behaviors]));
}
//# sourceMappingURL=debounce.js.map