You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							39 lines
						
					
					
						
							622 B
						
					
					
				
			
		
		
	
	
							39 lines
						
					
					
						
							622 B
						
					
					
				/*!
 | 
						|
 * Module requirements.
 | 
						|
 */
 | 
						|
 | 
						|
'use strict';
 | 
						|
 | 
						|
const CastError = require('../../error/cast');
 | 
						|
 | 
						|
/*!
 | 
						|
 * ignore
 | 
						|
 */
 | 
						|
 | 
						|
function handleBitwiseOperator(val) {
 | 
						|
  const _this = this;
 | 
						|
  if (Array.isArray(val)) {
 | 
						|
    return val.map(function(v) {
 | 
						|
      return _castNumber(_this.path, v);
 | 
						|
    });
 | 
						|
  } else if (Buffer.isBuffer(val)) {
 | 
						|
    return val;
 | 
						|
  }
 | 
						|
  // Assume trying to cast to number
 | 
						|
  return _castNumber(_this.path, val);
 | 
						|
}
 | 
						|
 | 
						|
/*!
 | 
						|
 * ignore
 | 
						|
 */
 | 
						|
 | 
						|
function _castNumber(path, num) {
 | 
						|
  const v = Number(num);
 | 
						|
  if (isNaN(v)) {
 | 
						|
    throw new CastError('number', num, path);
 | 
						|
  }
 | 
						|
  return v;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = handleBitwiseOperator;
 |