regrets-js

0.1.3 • Public • Published

regrets.js

⏰ Asynchronous control structures in JS

NPM

HitCount

Platform Build Status
Linux Build Status
Windows Build status

codecov

Known Vulnerabilities

What is regrets.js

regrets.js or Regrets allows asynchronous control structures in JS.

Regrets provides asynchronous:

  • if-elseif-else
  • while-do
  • repeat-until
  • boolean expressions (and, or, not)
  • comparisons (eq, ne, gt, lt, ge, le)
  • switch-case-default
  • foreach

You can read more here at the documentation site.

Usage

Installation

NPM

npm i regrets-js

CDN

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/regrets-js/dist/index.min.js"></script>

Loading the module

CommonJS

const regrets = require('regrets-js');

Example

Delayed odd or even

Checks asynchronously if the number is an odd or an even number.

The result is resolved after 5 seconds.

const sleep = (x, y) => new Promise(z => setTimeout(z, y, x));
 
const checkParity = x => new regrets.if(sleep(% 2 === 0, 5000))
  .then(() => console.log('The number is even'))
  .else(() => console.log('The number is odd'))

Sleepy Switch

const sleep = (x, y) => new Promise(z => setTimeout(z, y, x));
 
const sleepySwitch = x => new regrets.switch(sleep(% 3, 2500))
  .case(0).do(() => console.log('The number is a multiple of 3')).break()
  .case(1).do(() => console.log('The number is 1 greater than a multiple of 3')).break()
  .default(() => console.log('The number is 2 greater than a multiple of 3'))
 
sleepySwitch(14634)
sleepySwitch(1243)
sleepySwitch(5432)

Iterate items at an interval

const sleep = (x, y) => new Promise(z => setTimeout(z, y, x));
 
const interval = (x, y) => new regrets.forEach(x).do(v => sleep(v, y).then(console.log));
 
interval([1, 2, 3, 4, 5], 500);

Build

Clone the repo first then run in Terminal:

npm install

This installs the dependencies, then run:

npm run build

to build the CommonJS module, the browser module, the minified module, the docs, the coverages and the test suite.

Readme

Keywords

Package Sidebar

Install

npm i regrets-js

Weekly Downloads

2

Version

0.1.3

License

MIT

Unpacked Size

64.8 kB

Total Files

6

Last publish

Collaborators

  • lxsmnsyc