1.0.0 • Published 6 years ago

@splytech-io/process-tracker v1.0.0

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
6 years ago

Process Tracker

Helps to track running background tasks and prevents process from quiting until everything finishes.

Example

import { ProcessTracker } from '@splytech-io/process-tracker';

const processTracker = new ProcessTracker();



// - option 1

processTracker.trackPromise(startBackgroundProcess1());
processTracker.trackPromise(startBackgroundProcess2());
/* ... */
processTracker.trackPromise(startBackgroundProcess10());



// - option 2

async function somFunction() {
  processTracker.inc();
  await startAnotherBackgroundProcess();
  processTracker.dec();
}


processTracker.wait().then(() => {
  // called when all background processes finish - safe to quit
});

API

new ProcessTracker();

returns an instance of ProcessTracker which extends EventEmitter

inc(): void;

increments internal process counter

dec(): void;

decrements internal process counter. Emits drain event.

WARNING! throws an error if internal counter equals to 0 before calling dec()

trackPromise(promise: Promise): void;

increments internal process counter and decrements it when promise is fullfiled

getCount(): number;

returns internal process counter

wait(): Promise;

returns a promise which is resolved when counter becomes 0

Events

drain

emitted when internal counter is decremented

1.0.0

6 years ago