function getValueTypes()

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;
    }
}