Made by @kilianvalkhof

### Other projects:

- 💻 Polypane - Develop responsive websites and apps twice as fast on multiple screens at once
- 🖌️ Superposition - Kickstart your design system by extracting design tokens from your website
- 🗒️ FromScratch - A smart but simple autosaving scratchpad

# Electron-to-Chromium <a href="https://www.npmjs.com/package/electron-to-chromium"><img src="https://img.shields.io/npm/v/electron-to-chromium.svg" alt="npm"/></a> <a href="https://travis-ci.org/Kilian/electron-to-chromium"><img src="https://img.shields.io/travis/Kilian/electron-to-chromium/master.svg" alt="travis"/></a> <a href="https://www.npmjs.com/package/electron-to-chromium"><img src="https://img.shields.io/npm/dm/electron-to-chromium.svg" alt="npm-downloads"/></a> <a href="https://codecov.io/gh/Kilian/electron-to-chromium"><img src="https://codecov.io/gh/Kilian/electron-to-chromium/branch/master/graph/badge.svg" alt="codecov"/></a>

This repository provides a mapping of Electron versions to the Chromium version that it uses.

This package is used in Browserslist, so you can use e.g. `electron >= 1.4` in Autoprefixer, Stylelint, babel-preset-env and eslint-plugin-compat.

## Install

Install using `npm install electron-to-chromium`.

## Usage

To include Electron-to-Chromium, require it:

var e2c = require('electron-to-chromium');

### Properties

The Electron-to-Chromium object has 4 properties to use:

#### <tt>versions</tt>

An object of key-value pairs with a major Electron version as the key, and the corresponding major Chromium version as the value.

var versions = e2c.versions;
console.log(versions['1.4']);
// returns "53"

#### <tt>fullVersions</tt>

An object of key-value pairs with a Electron version as the key, and the corresponding full Chromium version as the value.

var versions = e2c.fullVersions;
console.log(versions['1.4.11']);
// returns "53.0.2785.143"

#### <tt>chromiumVersions</tt>

An object of key-value pairs with a major Chromium version as the key, and the corresponding major Electron version as the value.

var versions = e2c.chromiumVersions;
console.log(versions['54']);
// returns "1.4"

#### <tt>fullChromiumVersions</tt>

An object of key-value pairs with a Chromium version as the key, and an array of the corresponding major Electron versions as the value.

var versions = e2c.fullChromiumVersions;
console.log(versions['54.0.2840.101']);
// returns ["1.5.1", "1.5.0"]

### Functions

#### <tt>electronToChromium(query)</tt>

Arguments:

- Query: string or number, required. A major or full Electron version.

A function that returns the corresponding Chromium version for a given Electron function. Returns a string.

If you provide it with a major Electron version, it will return a major Chromium version:

var chromeVersion = e2c.electronToChromium('1.4');
// chromeVersion is "53"

If you provide it with a full Electron version, it will return the full Chromium version.

var chromeVersion = e2c.electronToChromium('1.4.11');
// chromeVersion is "53.0.2785.143"

If a query does not match a Chromium version, it will return `undefined`.

var chromeVersion = e2c.electronToChromium('9000');
// chromeVersion is undefined

#### <tt>chromiumToElectron(query)</tt>

Arguments:

- Query: string or number, required. A major or full Chromium version.

Returns a string with the corresponding Electron version for a given Chromium query.

If you provide it with a major Chromium version, it will return a major Electron version:

var electronVersion = e2c.chromiumToElectron('54');
// electronVersion is "1.4"

If you provide it with a full Chrome version, it will return an array of full Electron versions.

var electronVersions = e2c.chromiumToElectron('56.0.2924.87');
// electronVersions is ["1.6.3", "1.6.2", "1.6.1", "1.6.0"]

If a query does not match an Electron version, it will return `undefined`.

var electronVersion = e2c.chromiumToElectron('10');
// chromeVersion is undefined

#### <tt>electronToBrowserList(query)</tt> <strong>DEPRECATED</strong>

Arguments:

- Query: string or number, required. A major Electron version.

Deprecated: Browserlist already includes electron-to-chromium.

A function that returns a Browserslist query that matches the given major Electron version. Returns a string.

If you provide it with a major Electron version, it will return a Browserlist query string that matches the Chromium capabilities:

var query = e2c.electronToBrowserList('1.4');
// query is "Chrome >= 53"

If a query does not match a Chromium version, it will return `undefined`.

var query = e2c.electronToBrowserList('9000');
// query is undefined

### Importing just versions, fullVersions, chromiumVersions and fullChromiumVersions

All lists can be imported on their own, if file size is a concern.

#### <tt>versions</tt>

var versions = require('electron-to-chromium/versions');

#### <tt>fullVersions</tt>

var fullVersions = require('electron-to-chromium/full-versions');

#### <tt>chromiumVersions</tt>

var chromiumVersions = require('electron-to-chromium/chromium-versions');

#### <tt>fullChromiumVersions</tt>

var fullChromiumVersions = require('electron-to-chromium/full-chromium-versions');

## Updating

This package will be updated with each new Electron release.

To update the list, run `npm run build.js`. Requires internet access as it downloads from the canonical list of Electron versions.

To verify correct behaviour, run `npm test`.

## License