@sealsystems/droddel

Serialize asynchronous calls

Usage no npm install needed!

<script type="module">
  import sealsystemsDroddel from 'https://cdn.skypack.dev/@sealsystems/droddel';
</script>

README

@sealsystems/droddel

CircleCI AppVeyor

Serialize asynchronous calls.

Installation

$ npm install @sealsystems/droddel

Quick start

First you need to add a reference to seal-droddel within your application.

const droddel = require('@sealsystems/droddel');

To actually throttle a function, call droddel and hand over the function that shall be throttled.

E.g., if you want to serialize read access to a file, hand over a function that does the actual reading and returns its result as a promise:

const readFile = util.promisify(fs.readFile);

const throttledRead = droddel(
  async () => await readFile('/etc/passwd'));

To then read the file, simply call throttledRead:

const result = await throttledRead();

If you call throttledRead while it is already being run, the new call gets delayed.

Running the build

To build this module use roboter.

$ bot