@thisisagile/easy-test
Version:
Straightforward library for testing microservices built with @thisisagile/easy
13 lines (8 loc) • 812 B
text/typescript
export const isDefined = (o?: unknown): boolean => o !== undefined && o !== null;
export const isFunction = (o?: unknown): o is (...params: unknown[]) => unknown => isDefined(o) && typeof o === 'function';
export const isA = <T>(t?: unknown, ...properties: (keyof T)[]): t is T => isDefined(t) && properties.every(p => isDefined((t as T)[p]));
export const isAn = isA;
export const isArray = <T = any>(o?: unknown): o is Array<T> => isDefined(o) && o instanceof Array;
export const isObject = (o?: unknown): o is Record<string, unknown> => o != null && (typeof o === 'object' || typeof o === 'function') && !isArray(o);
export const asJson = (a?: unknown): any => ((a as any)?.toJSON ? (a as any).toJSON() : isObject(a) ? a : undefined);
export const asString = (a?: unknown): any => (a as any)?.toString();