mirror of
				https://kkgithub.com/actions/setup-python.git
				synced 2025-11-04 12:44:05 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			617 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			617 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'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;
 | 
						|
	}
 | 
						|
};
 |