New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@kev_nz/async-tools

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kev_nz/async-tools

Async tools - a collection of utility functions for working with async/await code.

  • 1.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Async Tools

npm version Build Status Coverage Status

This is a collection of utility functions for working with async/await code.

Install

npm install @kev_nz/async-tools

API Usage

Here are the functions provided. Additionally feel free to look at the tests in the project as well.

Delay

The delay method allows you to use wait a number of milliseconds before continuing the exection of your code.

const { delay } = require('@kev_nz/async-tools')

(async () => {
  await delay(100)
  console.info('~100 milliseconds later')
})()

Mapper

Execute an asynchronous mapping function over an array of returning the result.

const { mapper } = require('@kev_nz/async-tools')

(async () => {

  const items = [1, 2, 3]
  const mappedItems = await mapper(items, anAsynchronousFunction)
  // passing in an additional concurrency value specifies the number of async methods executed at a time
  const mappedItemsAgain = await mapper(items, anAsynchronousFunction, 2)
})()

Reducer

Execute asynchronous reducer functions over a starting value.

const { delay, reducer } = require('@kev_nz/async-tools')

const anAsyncFunction = async val => {
  await delay(10)
  return val + 1
}
(async () => {
  const finalValue = await reducer(0,
    anAsyncFunction,
    anAsyncFunction,
    anAsyncFunction
  )
  //finalValue 3
})()

Each

Execute an asynchronous function over an array one item at a time.

const { each } = require('@kev_nz/async-tools')

(async () => {
  const items = [1, 2, 3]
  const [first, second, third] = await each(items, anAsyncFunction)
})()

Composer

Take number of functions and compose them together.

const { composer } = require('@kev_nz/async-tools')

const anAsyncFunction = async val => {
  await delay(10)
  return val + 1
}
const anotherAsyncFunction = async val => {
  await delay(10)
  return val + 2
}

(async () => {
  const asyncChain = composer(
    anAsyncFunction,
    anotherAsyncFunction,
    anAsyncFunction
  )
  const finalValue = await asyncChain(0)
  //finalValue 4
})()

Holder

When used with composer it lets you pass additional parameters to a function in the composed.

const { composer, holder } = require('@kev_nz/async-tools')

const anAsyncFunction = async val => {
  await delay(10)
  return val + 1
}
const anotherAsyncFunction = async (val, secondValue) => {
  await delay(10)
  return val + secondValue
}

(async () => {
  const asyncChain = composer(
    anAsyncFunction,
    holder(anotherAsyncFunction, 3),
    anAsyncFunction
  )
  const finalValue = await asyncChain(0)
  //finalValue 5
})()

Timeout

Take number of functions and compose them together.

const { timeout } = require('@kev_nz/async-tools')

(async () => {
  const result = await timeout(() => thingThatIsLongRunning())

})()

Do While

Execute an async function while a condition is true

const { doWhile } = require('@kev_nz/async-tools')

(async () => {
  const results = await doWhile(async () => {
    await asyncFunction()
  }, () => something === true)
})()

While Do

While a condition is true execute an async function

const { whileDo } = require('@kev_nz/async-tools')

(async () => {
  const results = await whileDo(
    () => something === true),
    async () => {
      await asyncFunction()
    })
})()

Test Coverage

Keywords

FAQs

Package last updated on 12 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc