This is a collection of TypeScript utilities that we reuse across all TS projects.
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.
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']