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.
		
		
		
		
		
			
		
			
	
	
		
			35 lines
		
	
	
		
			866 B
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			866 B
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | /* | ||
|  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | ||
|  | 	Author Tobias Koppers @sokra | ||
|  | */ | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | const getGeneratedSourceInfo = require("./getGeneratedSourceInfo"); | ||
|  | const splitIntoLines = require("./splitIntoLines"); | ||
|  | 
 | ||
|  | const streamChunksOfRawSource = (source, onChunk, onSource, onName) => { | ||
|  | 	let line = 1; | ||
|  | 	const matches = splitIntoLines(source); | ||
|  | 	let match; | ||
|  | 	for (match of matches) { | ||
|  | 		onChunk(match, line, 0, -1, -1, -1, -1); | ||
|  | 		line++; | ||
|  | 	} | ||
|  | 	return matches.length === 0 || match.endsWith("\n") | ||
|  | 		? { | ||
|  | 				generatedLine: matches.length + 1, | ||
|  | 				generatedColumn: 0 | ||
|  | 		  } | ||
|  | 		: { | ||
|  | 				generatedLine: matches.length, | ||
|  | 				generatedColumn: match.length | ||
|  | 		  }; | ||
|  | }; | ||
|  | 
 | ||
|  | module.exports = (source, onChunk, onSource, onName, finalSource) => { | ||
|  | 	return finalSource | ||
|  | 		? getGeneratedSourceInfo(source) | ||
|  | 		: streamChunksOfRawSource(source, onChunk, onSource, onName); | ||
|  | }; |