1.1.0 • Published 7 years ago

merge-source-map v1.1.0

Weekly downloads
4,733,097
License
MIT
Repository
github
Last release
7 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

static-module@jsdevtools/coverage-istanbul-loader@vue/component-compiler-utilsvuedragdropuploadimagesgulp-magic-stringbb-chat@adamburgess/istanbul-instrumenter-loadersmallfox-registrysmallfox-runtimesmallfox-state@xlboy-v3/compiler-sfc@olivervorasai/sliderasterjs@uselessscope/vue-component-compiler-utils@uselessscope/component-compiler-utilscue-clivue-button-test1vue-loader-v16vue-compment@csr632/vite@csr632/vue-compiler-sfc@dinert/component@bundless/cli@prepair/require-extension-vuejflibjesusdemolanj-test-components@jianlee/espackchain_diggerjs-startsummerseatestltingzi-vuepresstinymce-plugin-toyudebugtransform-asttotamneque@arve.knudsen/static-module@atom-vue/compiler-sfc@astro-my/sign-request@advanced-rest-client/wct-istanbub@alta-ng-timeago/hiamtanh-alta@coderzb/webpacklearn@datorama/postcss-node-sass@dcloudio/uni-cli-nvue@devorso/dcountdownyyvip-art-templatewct-istanbubvue3-browser-compiler-yxverify-img-codevformlmqvdes-template@hazyflame/vue-jitsi-meet@hamidreza4dev/postcss-node-sass@hummer/tenon-loader@efox/vite@geekcojp/gp@graines-digitales/nice-handsome-button@infinitebrahmanuniverse/nolb-mer@krenaldi/learnstorybook-design-system-template@kpdecker/nyc@marko/jest@next-vue/compiler-sfc@nkduy/compiler-sfc@nkduy/component-compiler-utils@everything-registry/sub-chunk-2156@modern-js/plugin-unbundle@knightly/vue__compiler-sfc@jellywelly/iterare@katerberg/nyc@kdujs/component-compiler-utils@pundle/api@pundle/chunk-transformer-uglify@ryunosuke/assetter@refactorpro/pixi-virtual-joystick@phated/vite@phanmn/vite@peeky/utils@snoka/utils@serverless-devs/art-templatemggauharoncanycadvancedsan-sfc-compilerremove-modulenewdemo1ng-search-dropdownpostcss-node-sassrequire-extension-hookspundle-apipundle-chunk-transformer-js-uglifypundle-chunk-transformer-uglifysim-tplicons-vue-testhot-zone-vuehapydev-visual-htmlhapydev-art-template2hatom-tenon-loaderinstapackinnet-jsxlitepie-datepicker-gabe
1.1.0

7 years ago

1.0.4

8 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago