You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
972 B
45 lines
972 B
/* |
|
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;
|
|
|