“use strict”; var sourceMap = require(“source-map”); var Generator = sourceMap.SourceMapGenerator; var Consumer = sourceMap.SourceMapConsumer; /**

* return re-mapped rawSourceMap string
* @param {object} mappingObject
* @param {string} mappingObject.fromSourceMap
* @param {string} mappingObject.toSourceMap
* @returns {string}
*/

function transfer(mappingObject) {

var fromSourceMap = mappingObject.fromSourceMap;
var toSourceMap = mappingObject.toSourceMap;
var fromSMC = new Consumer(fromSourceMap);
var toSMC = new Consumer(toSourceMap);
var resultMap = new Generator();
fromSMC.eachMapping(function (mapping) {
    var generatedPosition = {
        line: mapping.generatedLine,
        column: mapping.generatedColumn
    };
    var fromOriginalPosition = {
        line: mapping.originalLine,
        column: mapping.originalColumn
    };
    // from's generated position -> to's original position
    var originalPosition = toSMC.originalPositionFor(fromOriginalPosition);
    if (originalPosition.source !== null) {
        resultMap.addMapping({
            source: originalPosition.source,
            name : originalPosition.name,
            generated: generatedPosition,
            original: originalPosition
        });
    }
});
return resultMap.toString();

}

module.exports = transfer;