32 lines
		
	
	
		
			792 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			792 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*!
 | |
|  * is-natural-number.js | MIT (c) Shinnosuke Watanabe
 | |
|  * https://github.com/shinnn/is-natural-number.js
 | |
| */
 | |
| 'use strict';
 | |
| 
 | |
| module.exports = 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;
 | |
| };
 |