1.1.0 • Published 6 years ago

merge-source-map v1.1.0

Weekly downloads
4,733,097
License
MIT
Repository
github
Last release
6 years ago

merge-source-map

npm-version downloads travis-ci Coverage Status

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.

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

@jsdevtools/coverage-istanbul-loaderstatic-module@vue/component-compiler-utilsvuedragdropuploadimagesgulp-magic-stringbb-chat@adamburgess/istanbul-instrumenter-loadersmallfox-registrysmallfox-runtimesmallfox-state@xlboy-v3/compiler-sfc@olivervorasai/sliderasterjslitepie-datepicker-gabehot-zone-vueinnet-jsxjesusdemojflibng-search-dropdownmggauharjs-startinstapackicons-vue-testnewdemo1m2m-chartjs-plugin-crosshairfis-deploy-uglify-jsfis3-optimizer-better-uglifyhatom-tenon-loaderfis-optimizer-uglify-jsfis-optimizer-uglify-js-latestfis-optimizer-uglify-js-nfdfis-optimizer-uglify-js3fis3-optimizer-uglify-cacheflowable-bpmn-modelergenerate-codenycadvancedoncapundle-apipundle-chunk-transformer-js-uglifypundle-chunk-transformer-uglifypostcss-node-sasssan-sfc-compilerremove-module@hamidreza4dev/postcss-node-sass@hazyflame/vue-jitsi-meetyyvip-art-template@infinitebrahmanuniverse/nolb-mer@jianlee/espackudebugvformlmqverify-img-codevue-compmentvue-loader-v16transform-asttinymce-plugin-toyvue-button-test1vue3-browser-compiler-yx@katerberg/nyc@kdujs/component-compiler-utils@kpdecker/nyc@modern-js/plugin-unbundle@jellywelly/iterare@knightly/vue__compiler-sfcwct-istanbubtingzi-vuepressvdes-template@next-vue/compiler-sfc@nkduy/compiler-sfc@nkduy/component-compiler-utils@hummer/tenon-loadersummerseatestlrequire-extension-hookssim-tpl@phanmn/vite@peeky/utils@marko/jest@phated/vite@tphone-beta/core@trainiac/component-compiler-utils@refactorpro/pixi-virtual-joystick@snoka/utils@torrefacto/gulp-magic-string@uselessscope/component-compiler-utils@uselessscope/vue-component-compiler-utils@serverless-devs/art-template@pundle/api@pundle/chunk-transformer-uglify@ryunosuke/assetter@xyh19/rollup-plugin-glob-import@zhengkenghong/art-template@vue-ajx/compiler-sfc@vue-vine/compilerart-async-templateant-design-draggable-modal-fix@advanced-rest-client/wct-istanbubatom-vue-loader@arve.knudsen/static-moduleart-templateart-template-asyncart-template-cc
1.1.0

6 years ago

1.0.4

7 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago