@3fv/guard
Version:
TypeScript guard suite
47 lines • 1.45 kB
JavaScript
import _isNil from 'lodash/isNil.js';
import _isObject from 'lodash/isObject.js';
import _isString from 'lodash/isString.js';
import _isNumber from 'lodash/isNumber.js';
import _isFunction from 'lodash/isFunction.js';
import { applyTypeGuardExtras } from "../applyTypeGuardExtras.js";
export function isNil(o) {
return _isNil(o);
}
export function isDefined(o) {
return !isNil(o);
}
export function isObject(o) {
return !isNil(o) && _isObject(o);
}
export function isPromise(o) {
return !isNil(o) && isObject(o) && (o instanceof Promise || isFunction(o.then));
}
export function isObjectType(o, type) {
return !isNil(o) && (o instanceof type || o.$$clazz === type.name);
}
export function isString(o) {
return !isNil(o) && _isString(o);
}
export function isNumber(o) {
return !isNil(o) && _isNumber(o) && !isNaN(o);
}
export const isFunction = applyTypeGuardExtras(function isFunction(o) {
return !isNil(o) && _isFunction(o);
});
export function isSymbol(o) {
return !isNil(o) && typeof o === 'symbol';
}
export function isBoolean(o) {
return typeof o === "boolean";
}
export function isDate(o) {
return o instanceof Date;
}
export const PrimitiveProducers = Array(String, Number, Boolean);
export function isPrimitiveProducer(o) {
return PrimitiveProducers.includes(o);
}
export function isPrimitive(o) {
return isBoolean(o) || isString(o) || isNumber(o);
}
//# sourceMappingURL=primitive.js.map