# Merge multiple NYC coverage files into one

### Problem <a href="#problem" id="problem"></a>

Sending multiple coverage files to SeaLights might have a network cost and we will often prefer sending only one files. In order to do that, we will need to first merge all the NYC coverage files into one and then send it to SeaLights.

### Solution <a href="#solution" id="solution"></a>

1. Install the istanbul-merge package

{% code overflow="wrap" lineNumbers="true" %}

```
npm install istanbul-merge
```

{% endcode %}

1. Make a string variable including all the files to merge

{% code overflow="wrap" lineNumbers="true" %}

```
json_files=$(find . ~+ -name "*.json" -print)
```

{% endcode %}

1. Run the merge command

{% code overflow="wrap" lineNumbers="true" %}

```
istanbul-merge --out coverage.raw.json "$json_files"
```

{% endcode %}

1. Upload the file to SeaLights

{% code overflow="wrap" lineNumbers="true" %}

```
./node_modules/.bin/slnodejs nycReport --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId --report/path/to/coverage.raw.json
```

{% endcode %}
