20 lines
		
	
	
		
			892 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			892 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
| function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
 | |
| import assertString from './util/assertString';
 | |
| import includes from './util/includesArray';
 | |
| import merge from './util/merge';
 | |
| var default_json_options = {
 | |
|   allow_primitives: false
 | |
| };
 | |
| export default function isJSON(str, options) {
 | |
|   assertString(str);
 | |
|   try {
 | |
|     options = merge(options, default_json_options);
 | |
|     var primitives = [];
 | |
|     if (options.allow_primitives) {
 | |
|       primitives = [null, false, true];
 | |
|     }
 | |
|     var obj = JSON.parse(str);
 | |
|     return includes(primitives, obj) || !!obj && _typeof(obj) === 'object';
 | |
|   } catch (e) {/* ignore */}
 | |
|   return false;
 | |
| } |