woah-utils
TypeScript icon, indicating that this package has built-in type declarations

0.3.0 • Public • Published

woah-utils

Just useful utilities.

Installation

npm add woah-utils

List of utilities

  1. runMultiThreading
  2. setAdvancedInterval
  3. wait
  4. wrapPromise

Usage

runMultiThreading

import * as woah from "woah-utils"

// run multi threading the specified number of threads

async function fn() {
    // code
    const result = await woah.runMultiThreading(
        [
            async () => {
                await woah.wait(500)
                return 3
            },
            async () => {
                await woah.wait(1000)
                return 2
            },
            async () => {
                await woah.wait(2000)
                return 8
            }
        ],
        2
    )
    console.log(result) // => [3, 2, 8]
    // code
}

setAdvancedInterval

import * as woah from "woah-utils"

// set interval

const clearAdvancedInterval = woah.setAdvancedInterval(() => {
    console.log("Hello world")
}, 1000)

// clear interval

clearAdvancedInterval()

// set interval with fast start (start right after call)

const clearAdvancedInterval = woah.setAdvancedInterval(
    () => {
        console.log("Hello world")
    },
    1000,
    true
)

// set interval with fast start & wait for async function before starting the next timeout

const clearAdvancedInterval = woah.setAdvancedInterval(
    async () => {
        await woah.wait(2000)
        console.log("Hello world")
    },
    1000,
    true,
    true
)

wait

import * as woah from "woah-utils"

// wait indicated time

async function fn() {
    // code
    await woah.wait(5000) // wait 5 seconds
    // code
}

wrapPromise

import * as woah from "woah-utils"

async function getOne(error = false) {
    await woah.wait(500)
    if (error) throw new Error("Just error")
    return 1
}

// wrap promise to avoid try-catch hell

async function fn() {
    const [data, err] = await woah.wrapPromise(getOne())
    console.log(data) // => 1
    console.log(err) // => null

    const [data, err] = await woah.wrapPromise(getOne(true))
    console.log(data) // => null
    console.log(err) // => Error
}

Readme

Keywords

Package Sidebar

Install

npm i woah-utils

Weekly Downloads

1

Version

0.3.0

License

MIT

Unpacked Size

8 kB

Total Files

8

Last publish

Collaborators

  • citrus_prod