Skip to content

myparcelnl/ts-utils

Repository files navigation

TypeScript Utilities

This is a collection of TypeScript utilities that we reuse across all TS projects.

npm Coverage Status

Installation

Using Yarn

yarn add @myparcel/ts-utils

Using pnpm

pnpm add @myparcel/ts-utils

Using npm

npm install @myparcel/ts-utils

⚠️ Note: You can install this package as a dev dependency if you only use the types.

Contents

Type guard for checking if a value is a key of the given enum.

import {isEnumValue} from '@myparcel/ts-utils';

enum MyEnum {
  A = 'A',
  B = 'B',
}

const value = 'A';

if (isEnumValue(MyEnum, value)) {
  // value is of type MyEnum.A
}

Type guard which checks if given value is inside an array.

import {isInArray} from '@myparcel/ts-utils';

const value = 'A'; // value is of type 'A'

isInArray(value, ['A', 'B']) // true

Type guard for checking if an object value is of a specific type by checking if a given K exists.

import {isOfType} from '@myparcel/ts-utils';

interface BaseObject {
  a: string;
  b: number;
}

interface ObjectWithC extends BaseObject {
  c: string;
}

const value = {
  a: 'a',
  b: 1,
  c: 'c',
};

if (isOfType<ObjectWithC>(value, 'c')) {
  // value is of type ObjectWithC
}

Returns true if every element in the array satisfies the provided predicate.

import {asyncEvery} from '@myparcel/ts-utils';

await asyncEvery([1, 2, 3, 4, 5], async (value) => value > 0); // true
await asyncEvery([1, 2, 3, 4, 5], async (value) => value > 1); // false

Returns true if some element in the array satisfies the provided predicate.

import {asyncSome} from '@myparcel/ts-utils';

await asyncSome([1, 2, 3, 4, 5], async (value) => value > 4); // true
await asyncSome([1, 2, 3, 4, 5], async (value) => value > 5); // false

Converts a value to an array. If the value is already an array, it will be returned as is.

import {toArray} from '@myparcel/ts-utils';

toArray('plain value'); // ['plain value']

toArray(['already an array']); // ['already an array']