lkt-control-tools

A collection of functions for control code flow
2,236
Install
npm install lkt-control-tools
Latest Version:1.0.4
Vue:3
License:MIT
Last Updated:Feb 19, 2024
Links: npm
Maintainer: lekrat

LKT Control Tools

Functions

assertNever

Assert all enum values are implemented in a switch.

Arg Type Description
enumValue any Var to check
Usage
import {assertNever} from "lkt-control-tools";

const enum SampleEnum {
    lorem = 'lorem',
    ipsum = 'ipsum'
} 

// Everything works fine
const fnOK = (value: SampleEnum): boolean => {
  switch (value) {
    case SampleEnum.lorem:
    case SampleEnum.ipsum:
      return true;
    default:
      assertNever(value);
  }
  return false;
};

// Bad code: won't compile
const fnKO = (value: SampleEnum): boolean => {
  switch (value) {
    case SampleEnum.lorem:
      return true;
    default:
      assertNever(value);
  }
  return false;
};

ensureNumberBetween

Checks if a given number is between a min and a max value. If below, min will be returned. If it's above, max will be returned.

Arg Type Description
number number Number to check
min number Min value
max number Max value
Usage
import {ensureNumberBetween} from "lkt-control-tools";

console.log(ensureNumberBetween(2, 1, 3)); // Will return 2

successPromise

Returns a successful Promise instance

Arg Type Description
cb Function Callback to execute on promise resolve
resolveValue any Value which will be resolved in the generated promise
Usage
import {successPromise} from "lkt-control-tools";

let datum = 'lorem';

const fn = (data: any) => {
    datum = ['something', datum, data].join('-');
};

successPromise(fn, 'ipsum')
    .then(() => {
        console.log(datum); // something-lorem-ipsum
    });

errorPromise

Returns a failed Promise instance

Arg Type Description
cb Function Callback to execute on promise reject
resolveValue any Value which will be resolved in the generated promise
Usage
import {errorPromise} from "lkt-control-tools";

let datum = 'lorem';

const fn = (data: any) => {
    datum = ['something', datum, data].join('-');
};

successPromise(fn, 'ipsum')
    .catch(() => {
        console.log(datum); // something-lorem-ipsum
    });

Related Packages

Version History

Version Released Vue License
1.0.4 ^3.3.0 MIT
1.0.3 ^3.3.0 MIT
1.0.2 ^3.2.37 MIT
1.0.1 ^3.2.37 MIT
1.0.0 ^3.2.37 MIT