Show More
Commit Description:
utf8mb4
Commit Description:
utf8mb4
References:
File last commit:
Show/Diff file:
Action:
node_modules/merge-source-map/README.md
| 90 lines
| 2.1 KiB
| text/x-minidsrc
| MarkdownLexer
|
r789 | # merge-source-map | |||
[](https://npmjs.org/package/merge-source-map) | ||||
[](https://travis-ci.org/keik/merge-source-map) | ||||
[](https://coveralls.io/github/keik/merge-source-map) | ||||
Merge old source map and new source map in multi-transform flow | ||||
# API | ||||
```javascript | ||||
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. | ||||
<dl> | ||||
<dt> | ||||
<code>oldMap</code> : <code>object|undefined</code> | ||||
</dt> | ||||
<dd> | ||||
old source map object | ||||
</dd> | ||||
<dt> | ||||
<code>newmap</code> : <code>object|undefined</code> | ||||
</dt> | ||||
<dd> | ||||
new source map object | ||||
</dd> | ||||
</dl> | ||||
# Example | ||||
```javascript | ||||
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 | ||||