Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var TypeUtils = (function() {
  2.    
  3.     var __isObject = function(/*any*/ value) {
  4.         var type = typeof value;
  5.  
  6.         return value != null && (type == 'object' || type == 'function');
  7.     };
  8.  
  9.     var __isArray = function(/*any*/ value) {
  10.         if (Array && Array.isArray) {
  11.             return Array.isArray(value);
  12.         }
  13.         return Object.prototype.toString.call(value) === '[object Array]';
  14.     };
  15.  
  16.     var __isBoolean = function(/*any*/ value) {
  17.         return value === true || value === false;
  18.     };
  19.  
  20.     var __isUndefined = function(/*any*/ value) {
  21.         return value === undefined;
  22.     };
  23.  
  24.     var __isNull = function(/*any*/ value) {
  25.         return value === null;
  26.     };
  27.  
  28.     var __isNil = function(/*any*/ value) {
  29.         return value == null;
  30.     };
  31.    
  32.     var __isNumber = function(/*any*/ value) {
  33.         return typeof value === 'number';
  34.     };
  35.  
  36.     var __isNaN = function(/*any*/ value) {
  37.         return __isNumber(value) && value != +value;
  38.     };
  39.  
  40.     var __isString = function(/*any*/ value) {
  41.         return typeof value === 'string';
  42.     };
  43.  
  44.     var __isFunction = function(/*any*/ value) {
  45.         return typeof value === 'function';
  46.     };
  47.  
  48.     var __isFinite = function(/*any*/ value) {
  49.         return __isFunction(isFinite) && isFinite(value);
  50.     };
  51.  
  52.     var __isFiniteNumber = function(/*any*/ value) {
  53.         if (Number && Number.isFinite) {
  54.             return Number.isFinite(value);
  55.         }
  56.  
  57.         return __isNumber(value) && __isFinite(value);
  58.     };
  59.  
  60.     var __isInteger = function(/*any*/ value) {
  61.         if (Number && Number.isInteger) {
  62.             return Number.isInteger(value);
  63.         }
  64.  
  65.         return __isFiniteNumber(value) && Math.floor(value) === value;
  66.     };
  67.  
  68.     var __isGlideRecord = function(/*any*/ value) {
  69.         if(!__isObject(value)) {
  70.             return false;
  71.         }
  72.        
  73.         var sampleMethods = ['addQuery', 'getTableName', 'initialize', 'getEncodedQuery'];
  74.        
  75.         sampleMethods.forEach(function(methodName) {
  76.             if(!__isFunction(value[methodName])) {
  77.                 return false;
  78.             }
  79.         });
  80.        
  81.         return true;
  82.     };
  83.    
  84.     var __isCustomObjectType = function(/*any*/ value, /*string*/ type) {
  85.         return __isObject(value) && !__isNil(value.type) && value.type == type;
  86.     };
  87.    
  88.     var __isJSONString = function(/*any*/ value) {
  89.         try {
  90.             JSON.parse(value);
  91.         } catch(err) {
  92.             return false;
  93.         }
  94.         return true;
  95.     };
  96.    
  97.     return {
  98.         isObject: __isObject,
  99.         isArray: __isArray,
  100.         isBoolean: __isBoolean,
  101.         isUndefined: __isUndefined,
  102.         isNull: __isNull,
  103.         isNil: __isNil,
  104.         isFunction: __isFunction,
  105.         isNumber: __isNumber,
  106.         isNaN: __isNaN,
  107.         isFinite: __isFinite,
  108.         isFiniteNumber: __isFiniteNumber,
  109.         isString: __isString,
  110.         isInteger: __isInteger,
  111.         isGlideRecord: __isGlideRecord,
  112.         isCustomObjectType: __isCustomObjectType,
  113.         isJSONString: __isJSONString
  114.     };
  115. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement