1.0.4 • Published 3 months ago

lkt-control-tools v1.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
3 months ago

LKT Control Tools

Functions

assertNever

Assert all enum values are implemented in a switch.

ArgTypeDescription
enumValueanyVar 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.

ArgTypeDescription
numbernumberNumber to check
minnumberMin value
maxnumberMax value

Usage

import {ensureNumberBetween} from "lkt-control-tools";

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

successPromise

Returns a successful Promise instance

ArgTypeDescription
cbFunctionCallback to execute on promise resolve
resolveValueanyValue 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

ArgTypeDescription
cbFunctionCallback to execute on promise reject
resolveValueanyValue 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
    });