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.
		
		
		
		
		
			|  | 5 months ago | |
|---|---|---|
| .. | ||
| LICENSE | 5 months ago | |
| README.md | 5 months ago | |
| index.js | 5 months ago | |
| package.json | 5 months ago | |
		
			
				
				README.md
			
		
		
			
			
		
	
	merge-source-map
Merge old source map and new source map in multi-transform flow
API
var merge = require('merge-source-map')
merge(oldMap, newMap)
Merge old source map and new source map and return merged. If old or new source map value is falsy, return another one as it is.
- 
    oldMap:object|undefined
- old source map object
- 
    newmap:object|undefined
- new source map object
Example
var esprima    = require('esprima'),
    estraverse = require('estraverse'),
    escodegen  = require('escodegen'),
    convert    = require('convert-source-map'),
    merge      = require('merge-source-map')
const CODE = 'a = 1',
      FILEPATH = 'a.js'
// create AST of original code
var ast = esprima.parse(CODE, {sourceType: 'module', loc: true})
// transform AST of original code
estraverse.replace(ast, {
  enter: function(node, parent) { /* change AST */ },
  leave: function(node, parent) { /* change AST */ }
})
// generate code and source map from transformed AST
var gen = escodegen.generate(ast, {
  sourceMap: FILEPATH,
  sourceMapWithCode: true,
  sourceContent: CODE
})
// merge old source map and new source map
var oldMap = convert.fromSource(CODE) && convert.fromSource(CODE).toObject(),
    newMap = JSON.parse(gen.map.toString()),
    mergedMap = merge(oldMap, newMap),
    mapComment = convert.fromObject(mergedMap).toComment()
// attach merge source map to transformed code
var transformed = gen.code + '\n' + mapComment
console.log(transformed);
Test
% npm install
% npm test
License
MIT (c) keik