Socket
Socket
Sign inDemoInstall

promist

Package Overview
Dependencies
3
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    promist

A dependable promises and async utility belt


Version published
Weekly downloads
1.8K
decreased by-5.66%
Maintainers
1
Install size
507 kB
Created
Weekly downloads
 

Readme

Source

promist

Version Build Status Coverage Dependencies Vulnerabilities License Types

A dependable promises and async utility belt.

Install

npm install promist

Documentation

Utils

control(test: Function, generator: Function): Function

Used to control async flow. It returns a promise returning function taking the same arguments as generator.

  • test: a test function (can be async) that will be run before calling each next() on generator, with signature () => Promise<boolean | Error> | boolean | Error. It can return:
    • false: generator will not continue execution (it will never resolve).
    • true: generator will continue execution until the next yield.
    • Error: generator call will return a rejected promise. The same behavior can be expected if the error is thrown instead of returned.
  • generator: must be a generator function. Within it, you'd use yield as you would await for an async function.
import { control } from 'promist';

function* gen(n) {
  // You can use yield as you'd use await
  let res = yield Promise.resolve(n * 2);
  // test() will be called here,
  // if it returns falsy or throws an error this next line won't execute
  res = yield Promise.resolve(res * 5);

  return res;
}

const willContinue = control(() => true, gen);
const willNotContinue = control(() => false, gen);
const willReject = control(() => Error('An error ocurred'), gen);

willContinue(1).then(console.log); // 10
willNotContinue(2).then(console.log); // Will not resolve
willReject(3).then(console.log).catch(console.error); // Error: An error occurred

isPromise(value: any): boolean

Returns true if value is a thenable and catchable, false otherwise.

  • value: object to test.
import { isPromise } from 'promist';

if (isPromise(promise)) {
  promise.then(() => { /* ... */ }).catch(() => { /* ... */ });
}

isPromiseLike(value: any): boolean

Returns true if value is a thenable, false otherwise.

  • value: object to test.
import { isPromiseLike } from 'promist';

if (isPromiseLike(promise)) {
  promise.then(() => { /* ... */ });
}

Keywords

FAQs

Last updated on 14 Dec 2021

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc