| 123456789101112131415161718192021222324252627282930313233 | 
							- 'use strict';
 
- const errorEx = require('error-ex');
 
- const fallback = require('json-parse-better-errors');
 
- const JSONError = errorEx('JSONError', {
 
- 	fileName: errorEx.append('in %s')
 
- });
 
- module.exports = (input, reviver, filename) => {
 
- 	if (typeof reviver === 'string') {
 
- 		filename = reviver;
 
- 		reviver = null;
 
- 	}
 
- 	try {
 
- 		try {
 
- 			return JSON.parse(input, reviver);
 
- 		} catch (err) {
 
- 			fallback(input, reviver);
 
- 			throw err;
 
- 		}
 
- 	} catch (err) {
 
- 		err.message = err.message.replace(/\n/g, '');
 
- 		const jsonErr = new JSONError(err);
 
- 		if (filename) {
 
- 			jsonErr.fileName = filename;
 
- 		}
 
- 		throw jsonErr;
 
- 	}
 
- };
 
 
  |