parent
888e01a6a7
commit
00e15ce815
@ -0,0 +1,32 @@ |
||||
'use strict' |
||||
var SourceMappingDecoder = require('./sourceMappingDecoder') |
||||
|
||||
function offsetToColumnConverter (compilerEvent) { |
||||
this.lineBreakPositionsByContent = {} |
||||
this.sourceMappingDecoder = new SourceMappingDecoder() |
||||
var self = this |
||||
if (compilerEvent) { |
||||
compilerEvent.register('compilationFinished', function (success, data, source) { |
||||
self.clear() |
||||
}) |
||||
} |
||||
} |
||||
|
||||
offsetToColumnConverter.prototype.offsetToLineColumn = function (rawLocation, file, sources, asts) { |
||||
if (!this.lineBreakPositionsByContent[file]) { |
||||
for (var filename in asts) { |
||||
var source = asts[filename] |
||||
if (source.id === file) { |
||||
this.lineBreakPositionsByContent[file] = this.sourceMappingDecoder.getLinebreakPositions(sources[filename].content) |
||||
break |
||||
} |
||||
} |
||||
} |
||||
return this.sourceMappingDecoder.convertOffsetToLineColumn(rawLocation, this.lineBreakPositionsByContent[file]) |
||||
} |
||||
|
||||
offsetToColumnConverter.prototype.clear = function () { |
||||
this.lineBreakPositionsByContent = {} |
||||
} |
||||
|
||||
module.exports = offsetToColumnConverter |
Loading…
Reference in new issue