# merge-source-map

> Merge old source map and new source map in multi-transform flow

Latest version **1.1.0** (published 2017-12-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install merge-source-map
pnpm add merge-source-map
yarn add merge-source-map
bun add merge-source-map
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2017-12-25 |
| First published | 2016-03-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 28 |
| Author | keik |
| Maintainers | keik |
| Keywords | sourcemap, source-map |

## Links

- npm: https://www.npmjs.com/package/merge-source-map
- Repository: https://github.com/keik/merge-source-map
- Homepage: https://github.com/keik/merge-source-map#readme
- Issues: https://github.com/keik/merge-source-map/issues
- npm.io page: https://npm.io/package/merge-source-map

## Dependencies (1)

- [source-map](https://npm.io/package/source-map.md) ^0.6.1

## Alternatives

- [jsforce](https://npm.io/package/jsforce.md) — 851.2K weekly downloads
- [react-native-qrcode-svg](https://npm.io/package/react-native-qrcode-svg.md) — 693.5K weekly downloads
- [@salesforce/plugin-data](https://npm.io/package/@salesforce/plugin-data.md) — 394.9K weekly downloads
- [@backstage/plugin-search-common](https://npm.io/package/@backstage/plugin-search-common.md) — 308.5K weekly downloads
- [@chain-registry/types](https://npm.io/package/@chain-registry/types.md) — 38.4K weekly downloads

## Recent versions

- 1.1.0 (latest) — 2017-12-25
- 1.0.4 — 2017-06-19
- 1.0.3 — 2016-09-23
- 1.0.2 — 2016-06-23
- 1.0.1 — 2016-03-08
- 1.0.0 — 2016-03-08

## README

# merge-source-map

[![npm-version](https://img.shields.io/npm/v/merge-source-map.svg?style=flat-square)](https://npmjs.org/package/merge-source-map)
[![downloads](http://img.shields.io/npm/dm/merge-source-map.svg?style=flat-square)](https://npmjs.org/package/merge-source-map)
[![travis-ci](https://img.shields.io/travis/keik/merge-source-map.svg?style=flat-square)](https://travis-ci.org/keik/merge-source-map)
[![Coverage Status](https://img.shields.io/coveralls/keik/merge-source-map.svg?style=flat-square)](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

---
_Source: https://npm.io/package/merge-source-map · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
