rapnc
Version:
Node client for RAP 1.0
32 lines (25 loc) • 743 B
JavaScript
var toString = Object.prototype.toString;
var typeStr = "Boolean Number String Function Array Date RegExp Object Error";
var typeMapper = {};
var splited = typeStr.split(" ");
splited.forEach(function(name) {
typeMapper["[object " + name + "]"] = name.toLowerCase();
});
function type(obj) {
if ( obj == null ) {
return obj + "";
}
return typeof obj === "object" || typeof obj === "function"
? typeMapper[ toString.call(obj) ] || "object"
: typeof obj;
}
var obj = {};
obj.detect = type;
splited.forEach(function(name) {
obj['is' + name] = (function(name) {
return function(obj) {
return type(obj) == name.toLowerCase();
}
})(name);
});
module.exports = obj;