/* 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;