0.1.3 • Published 5 years ago

regrets-js v0.1.3

Weekly downloads
6
License
MIT
Repository
github
Last release
5 years ago

regrets.js

⏰ Asynchronous control structures in JS

NPM

HitCount npm.io

PlatformBuild Status
LinuxBuild Status
WindowsBuild 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(x % 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(x % 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.

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago