You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			130 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			130 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | /* | ||
|  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | ||
|  | 	Author Tobias Koppers @sokra | ||
|  | */ | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | const createMappingsSerializer = require("./createMappingsSerializer"); | ||
|  | 
 | ||
|  | exports.getSourceAndMap = (inputSource, options) => { | ||
|  | 	let code = ""; | ||
|  | 	let mappings = ""; | ||
|  | 	let sources = []; | ||
|  | 	let sourcesContent = []; | ||
|  | 	let names = []; | ||
|  | 	const addMapping = createMappingsSerializer(options); | ||
|  | 	const { source } = inputSource.streamChunks( | ||
|  | 		Object.assign({}, options, { finalSource: true }), | ||
|  | 		( | ||
|  | 			chunk, | ||
|  | 			generatedLine, | ||
|  | 			generatedColumn, | ||
|  | 			sourceIndex, | ||
|  | 			originalLine, | ||
|  | 			originalColumn, | ||
|  | 			nameIndex | ||
|  | 		) => { | ||
|  | 			if (chunk !== undefined) code += chunk; | ||
|  | 			mappings += addMapping( | ||
|  | 				generatedLine, | ||
|  | 				generatedColumn, | ||
|  | 				sourceIndex, | ||
|  | 				originalLine, | ||
|  | 				originalColumn, | ||
|  | 				nameIndex | ||
|  | 			); | ||
|  | 		}, | ||
|  | 		(sourceIndex, source, sourceContent) => { | ||
|  | 			while (sources.length < sourceIndex) { | ||
|  | 				sources.push(null); | ||
|  | 			} | ||
|  | 			sources[sourceIndex] = source; | ||
|  | 			if (sourceContent !== undefined) { | ||
|  | 				while (sourcesContent.length < sourceIndex) { | ||
|  | 					sourcesContent.push(null); | ||
|  | 				} | ||
|  | 				sourcesContent[sourceIndex] = sourceContent; | ||
|  | 			} | ||
|  | 		}, | ||
|  | 		(nameIndex, name) => { | ||
|  | 			while (names.length < nameIndex) { | ||
|  | 				names.push(null); | ||
|  | 			} | ||
|  | 			names[nameIndex] = name; | ||
|  | 		} | ||
|  | 	); | ||
|  | 	return { | ||
|  | 		source: source !== undefined ? source : code, | ||
|  | 		map: | ||
|  | 			mappings.length > 0 | ||
|  | 				? { | ||
|  | 						version: 3, | ||
|  | 						file: "x", | ||
|  | 						mappings, | ||
|  | 						sources, | ||
|  | 						sourcesContent: | ||
|  | 							sourcesContent.length > 0 ? sourcesContent : undefined, | ||
|  | 						names | ||
|  | 				  } | ||
|  | 				: null | ||
|  | 	}; | ||
|  | }; | ||
|  | 
 | ||
|  | exports.getMap = (source, options) => { | ||
|  | 	let mappings = ""; | ||
|  | 	let sources = []; | ||
|  | 	let sourcesContent = []; | ||
|  | 	let names = []; | ||
|  | 	const addMapping = createMappingsSerializer(options); | ||
|  | 	source.streamChunks( | ||
|  | 		Object.assign({}, options, { source: false, finalSource: true }), | ||
|  | 		( | ||
|  | 			chunk, | ||
|  | 			generatedLine, | ||
|  | 			generatedColumn, | ||
|  | 			sourceIndex, | ||
|  | 			originalLine, | ||
|  | 			originalColumn, | ||
|  | 			nameIndex | ||
|  | 		) => { | ||
|  | 			mappings += addMapping( | ||
|  | 				generatedLine, | ||
|  | 				generatedColumn, | ||
|  | 				sourceIndex, | ||
|  | 				originalLine, | ||
|  | 				originalColumn, | ||
|  | 				nameIndex | ||
|  | 			); | ||
|  | 		}, | ||
|  | 		(sourceIndex, source, sourceContent) => { | ||
|  | 			while (sources.length < sourceIndex) { | ||
|  | 				sources.push(null); | ||
|  | 			} | ||
|  | 			sources[sourceIndex] = source; | ||
|  | 			if (sourceContent !== undefined) { | ||
|  | 				while (sourcesContent.length < sourceIndex) { | ||
|  | 					sourcesContent.push(null); | ||
|  | 				} | ||
|  | 				sourcesContent[sourceIndex] = sourceContent; | ||
|  | 			} | ||
|  | 		}, | ||
|  | 		(nameIndex, name) => { | ||
|  | 			while (names.length < nameIndex) { | ||
|  | 				names.push(null); | ||
|  | 			} | ||
|  | 			names[nameIndex] = name; | ||
|  | 		} | ||
|  | 	); | ||
|  | 	return mappings.length > 0 | ||
|  | 		? { | ||
|  | 				version: 3, | ||
|  | 				file: "x", | ||
|  | 				mappings, | ||
|  | 				sources, | ||
|  | 				sourcesContent: sourcesContent.length > 0 ? sourcesContent : undefined, | ||
|  | 				names | ||
|  | 		  } | ||
|  | 		: null; | ||
|  | }; |