in lib/index.ts [28:45]
function getValueTypes(value: any): ValueTypes {
if (typeof value === 'object') {
// Objects can't be callable, so no need to check for class / function
return ValueTypes.Object;
} else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
return ValueTypes.Primitive;
} else if (value === null || value === undefined) {
return ValueTypes.NullOrUndefined;
} else if (typeof value === 'function') {
if (isClasslike(value)) {
return ValueTypes.Class | (hasCloduleProperties(value) ? ValueTypes.Object : ValueTypes.None);
} else {
return ValueTypes.Function | (hasFunduleProperties(value) ? ValueTypes.Object : ValueTypes.None);
}
} else {
return ValueTypes.Unknown;
}
}