46 lines
		
	
	
		
			972 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			972 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| 	MIT License http://www.opensource.org/licenses/mit-license.php
 | |
| 	Author Tobias Koppers @sokra
 | |
| */
 | |
| "use strict";
 | |
| 
 | |
| class MappingsContext {
 | |
| 	constructor() {
 | |
| 		this.sourcesIndices = new Map();
 | |
| 		this.sourcesContent = new Map();
 | |
| 		this.hasSourceContent = false;
 | |
| 		this.currentOriginalLine = 1;
 | |
| 		this.currentSource = 0;
 | |
| 		this.unfinishedGeneratedLine = false;
 | |
| 	}
 | |
| 
 | |
| 	ensureSource(source, originalSource) {
 | |
| 		let idx = this.sourcesIndices.get(source);
 | |
| 		if(typeof idx === "number") {
 | |
| 			return idx;
 | |
| 		}
 | |
| 		idx = this.sourcesIndices.size;
 | |
| 		this.sourcesIndices.set(source, idx);
 | |
| 		this.sourcesContent.set(source, originalSource)
 | |
| 		if(typeof originalSource === "string")
 | |
| 			this.hasSourceContent = true;
 | |
| 		return idx;
 | |
| 	}
 | |
| 
 | |
| 	getArrays() {
 | |
| 		const sources = [];
 | |
| 		const sourcesContent = [];
 | |
| 
 | |
| 		for(const pair of this.sourcesContent) {
 | |
| 			sources.push(pair[0]);
 | |
| 			sourcesContent.push(pair[1]);
 | |
| 		}
 | |
| 
 | |
| 		return {
 | |
| 			sources,
 | |
| 			sourcesContent
 | |
| 		};
 | |
| 	}
 | |
| }
 | |
| module.exports = MappingsContext;
 |