
Security News
Federal Audit Finds NIST Wasted Funds With No Plan to Clear NVD Backlog
Federal audit finds NIST lacked a plan to clear the NVD backlog, wasted funds on duplicate work, and delayed use of CISA data.
andrews-utils
Advanced tools
A collection of random useful utility functions that you may not find in lodash. These utility functions are emitted as ES6 modules so that they are tree-shakable.
A collection of random useful utility functions that you may not find in lodash. These utility functions are emitted as ES6 modules so that they are tree-shakable.
This utility library provides a series of generic TypeScript type guards for validating your data.
This type guard validates that the provided object contains the provided property names.
function hasOwnProperties<
X extends Record<any, unknown>,
Y extends PropertyKey,
A extends Y[]
>(obj: X, props: A) => obj is X & Record<Y, unknown>;
import { isObject, hasOwnProperties } from 'andrews-utils';
const val: unknown = {
foo: 'bar',
hello: 'world',
};
if (isObject(val) && hasOwnProperties(val, ['foo', 'hello'])) {
// -> do something with obj.foo or obj.hello
}
This type guard validates that the provided object contains the provided property.
function hasOwnProperty<X extends Record<any, unknown>, Y extends PropertyKey>(
obj: X,
prop: Y
) => obj is X & Record<Y, unknown>;
import { isObject, hasOwnProperty } from 'andrews-utils';
const val: unknown = {
foo: 'bar',
hello: 'world',
};
if (isObject(val) && hasOwnProperty(val, 'foo')) {
}
This type guard validates that the provided value is an array.
function isArray(value: unknown) => value is unknown[];
import { isArray } from 'andrews-utils';
const arr: unknown = ['foo', 'bar'];
if (isArray(arr)) {
arr.forEach(val => {});
}
This type guard validates that the provided value is a number.
function isNumber(value: unknown) => value is number;
import { isNumber } from 'andrews-utils';
const val: unknown = 123;
if (isNumber(val)) {
const answer = val * 2;
}
This type guard validates that the provided value is an object.
function isObject(value: unknown) => value is Record<string, unknown>;
import { isObject } from 'andrews-utils';
const obj: unknown = {
foo: 'bar',
};
if (isObject(val)) {
// Do something with object with unknown properties.
// Usually you would combine this with the hasOwnProperties type guard.
}
This type guard validates that the provided value is not undefined or null.
function isSet<T>(value?: unknown) => value is NonNullable<T>;
import { isSet } from 'andrews-utils';
const val: unknown = 123;
if (isSet<number>(val)) {
const answer = val * 2;
}
This type guard validates that the provided value is a string.
function isString(value: unknown) => value is string;
import { isString } from 'andrews-utils';
const val: unknown = 'foo';
if (isString(val)) {
const chars = val.split('');
}
Executes a standard fetch but returns the JSON response as unknown to force you to validate it.
async function safeJsonFetch(
input: RequestInfo | URL,
init?: RequestInit | undefined
) => Promise<unknown>;
import { safeJsonFetch } from 'andrews-utils';
safeJsonFetch('https://example.com/user/1').then(json => {
const answer = json * 2;
// => TSError: Object is of type 'unknown'.ts(2571)
// This error is expected because json should be of type `unknown`.
});
FAQs
A collection of random useful utility functions that you may not find in lodash. These utility functions are emitted as ES6 modules so that they are tree-shakable.
We found that andrews-utils demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Federal audit finds NIST lacked a plan to clear the NVD backlog, wasted funds on duplicate work, and delayed use of CISA data.

Research
/Security News
A mini Shai-Hulud campaign compromised Red Hat Cloud Services npm packages to steal developer and CI/CD secrets during installation.

Research
/Security News
The North Korean malware loader hides in a Packagist-listed package and its GitHub branch to fetch and execute remote code in a likely Contagious Interview-style lure.