1.1.0 • Published 11 months ago

async-recursive-call v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

async-recursive-call

Small repo that provides functionality to run async code recursively until check or cancellation functions return true.

Idea of creating was based on needs to check that API for service mesh started successfully in a given time limit.

Can be used both on server side and browsers.

install

npm i async-recursive-call

Example of usage

import { recursiveCall, delay } from 'async-recursive-call';

const MAX_TIME = process.env.SERVICE_MAX_START_TIME ?? 2 * 1000;

const fetchMock = () => fetch(process.env.SERVICE_URL);

....
async function checkMyServer() {
  let ready = false;
  const isSuccess = (data: any) => (data as Response).status === 200;
  let needCancel = false;

  await Promise.race([
    delay(MAX_TIME),
    recursiveCall(fetchMock, isSuccess, () => needCancel).then(
      () => (ready = true)
    )
  ]);

  needCancel = true;

  console.log("Service is ready to use ", ready);
}

checkMyServer();

test

To run tests use command npm run test

license

MIT

1.1.0

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago