1.0.1 • Published 1 year ago

serial-race v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

serial-race

  • Perform tasks in order. Returns the first successful result.
// as-is
function doProcess(key: string) {
  // ...

  let value = null;

  value = await getFromMemory(key);

  if (!value) {
    value = await getFromStore(key).catch(() => null);
  }

  if (!value) {
    value = await getFromDatabase(key);
  }

  const result = {
    key,
    value,
  };

  // ...
}

// to-be
function doProcess(key: string) {
  // ...

  const value = await serialRace(null)
    .task(() => getFromMemory(key))
    .task(() => getFromStore(key))
    .task(() => getFromDatabase(key))
    .run();

  const result = {
    key,
    value,
  };

  // ...
}

Features

  • It will break as soon as there are results. No unnecessary processing.