# jcampconverter

> Parse and convert JCAMP-DX data

Latest version **12.5.7** (published 2026-09-15) · CC-BY-NC-SA-4.0 license · 0 weekly downloads

## Install

```sh
npm install jcampconverter
pnpm add jcampconverter
yarn add jcampconverter
bun add jcampconverter
```

## Health

**Score 60/100 (C)** — status: active.

Positive: esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 12.5.7 |
| Published | 2026-09-15 |
| First published | 2014-10-20 |
| Weekly downloads | 0 |
| License | CC-BY-NC-SA-4.0 |
| TypeScript types | none |
| Module format | ESM |
| Dependencies | 6 |
| Unpacked size | 50.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | targos, lpatiny, cheminfo-bot, stropitek |
| Keywords | jcamp, converter |

## Links

- npm: https://www.npmjs.com/package/jcampconverter
- Issues: https://github.com/cheminfo/nmrium/issues/new?title=%5Bjcampconverter%5D
- npm.io page: https://npm.io/package/jcampconverter

## Dependencies (6)

- [openchemlib](https://npm.io/package/openchemlib.md) ^9.24.0
- [ensure-string](https://npm.io/package/ensure-string.md) ^2.0.0
- [cheminfo-types](https://npm.io/package/cheminfo-types.md) ^1.15.0
- [dynamic-typing](https://npm.io/package/dynamic-typing.md) ^2.0.0
- [ml-array-median](https://npm.io/package/ml-array-median.md) ^2.0.0
- [gyromagnetic-ratio](https://npm.io/package/gyromagnetic-ratio.md) ^2.0.0

## Recent versions

- 12.5.7 (latest) — 2026-09-15
- 9.0.5-pre.1671203463 (pre) — 2022-12-16
- 12.5.6 — 2026-09-10
- 12.5.5 — 2026-08-19
- 12.5.4 — 2026-08-19
- 12.5.3 — 2026-08-11
- 12.5.2 — 2026-07-10
- 12.5.1 — 2026-07-07
- 12.5.0 — 2026-06-29
- 12.4.0 — 2026-06-25
- 12.3.3 — 2026-06-05
- 12.3.2 — 2026-05-07
- 12.3.1 — 2026-05-04
- 12.3.0 — 2026-04-29
- 12.2.7 — 2026-04-17
- … 122 more at https://npm.io/package/jcampconverter/versions

## README

<h3 align="center">
  <a href="https://www.zakodium.com">
    <img src="https://www.zakodium.com/brand/zakodium-logo-white.svg" width="50" alt="Zakodium logo" />
  </a>
  <p>
    Maintained by <a href="https://www.zakodium.com">Zakodium</a>
  </p>
</h3>

NB: migrated from https://github.com/cheminfo/jcampconverter/commit/be9f772a7b852a1ca0cd7f00efce278f6413b67e

# JCAMP-DX converter

[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5091526.svg)](https://doi.org/10.5281/zenodo.5091526)

Parse and convert JCAMP-DX data.

## Installation

```shell
npm install jcampconverter
```

## Methods

### `convert(jcamp, [options])`

Converts the `jcamp` using `options`.  
Returns an object with information about the converted file and uncompressed spectra data.

**Arguments**

- `jcamp` - String or ArrayBuffer containing the JCAMP-DX data
- `options` - Object with options to pass to the converter

**Options**

- keepRecordsRegExp - regexp to select which records should be placed in the info field. By default: :/^\$/} (nothing is kept)
- withoutXY - do not parse XYDATA or PEAKTABLE fields. Useful to only extract metadata fields (combine this option with `keepRecordsRegExp`)
- chromatogram - use the new GC/MS data format output (default: false)
- canonicDataLabels - canonize data labels (uppercase) (default: true).
- canonicMetadataLabels - canonize data labels (uppercase) (default: false).
- dynamicTyping - When parsing field convert to number if a number (default: true)

2D NMR options:

- noContour - if true, the contour levels will not be generated. Instead the raw data will be available in `result.minMax.z` (default: false)
- nbContourLevels - number of contour levels to use in each positive and negative sides (default: 7)
- noiseMultiplier - default: 5
- keepSpectra - Generate array for 2D NMR spectra (default: false)

### Use as a module

#### Node.js

```javascript
var converter = require('jcampconverter');
var jcamp = require('fs').readFileSync('path/to/jcamp.dx', 'utf8');

var result = converter.convert(jcamp);

// if there is only one spectrum it will be in
console.log(result.flatten[0]);

// the converter will also keep the full jcamp tree
```

## Testing and build

```console
npm install
npm test
npm run build
```

## Benchmark

```console
npm run benchmark
```

## License

© 2025 Zakodium Sàrl. This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. [CC BY-NC-SA 4.0](./LICENSE)

This package is based on MIT-licensed code that can be found here: https://doi.org/10.5281/zenodo.5091526

[npm-image]: https://img.shields.io/npm/v/jcampconverter.svg
[npm-url]: https://npmjs.org/package/jcampconverter
[download-image]: https://img.shields.io/npm/dm/jcampconverter.svg
[download-url]: https://npmjs.org/package/jcampconverter

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