30 lines
		
	
	
		
			774 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			774 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*!
 | 
						|
 * is-natural-number.js | MIT (c) Shinnosuke Watanabe
 | 
						|
 * https://github.com/shinnn/is-natural-number.js
 | 
						|
*/
 | 
						|
export default function isNaturalNumber(val, option) {
 | 
						|
  if (option) {
 | 
						|
    if (typeof option !== 'object') {
 | 
						|
      throw new TypeError(
 | 
						|
        String(option) +
 | 
						|
        ' is not an object. Expected an object that has boolean `includeZero` property.'
 | 
						|
      );
 | 
						|
    }
 | 
						|
 | 
						|
    if ('includeZero' in option) {
 | 
						|
      if (typeof option.includeZero !== 'boolean') {
 | 
						|
        throw new TypeError(
 | 
						|
          String(option.includeZero) +
 | 
						|
          ' is neither true nor false. `includeZero` option must be a Boolean value.'
 | 
						|
        );
 | 
						|
      }
 | 
						|
 | 
						|
      if (option.includeZero && val === 0) {
 | 
						|
        return true;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return Number.isSafeInteger(val) && val >= 1;
 | 
						|
}
 |