Apache Cordova tools and platforms shared routines
Last updated a year ago by erisu .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install cordova-common 
SYNC missed versions from official npm registry.



Node CI

Exposes shared functionality used by cordova-lib and Cordova platforms.

Exposed APIs


Represents special instance of NodeJS EventEmitter which is intended to be used to post events to cordova-lib and cordova-cli


const { events } = require('cordova-common');
events.emit('warn', 'Some warning message')

Here are the following supported events by cordova-cli:

  • verbose
  • log
  • info
  • warn
  • error


An error class used by Cordova to throw cordova-specific errors. The CordovaError class is inherited from Error, so it is a valid instance of Error. (instanceof check succeeds).


const { CordovaError } = require('cordova-common');
throw new CordovaError('Some error message', SOME_ERR_CODE);

See CordovaError for supported error codes.


Exposes functionality to deal with cordova project config.xml files. For ConfigParser API reference check ConfigParser Readme.


const { ConfigParser } = require('cordova-common');
const appConfig = new ConfigParser('path/to/cordova-app/config.xml');

PluginInfoProvider and PluginInfo

PluginInfo is a wrapper for cordova plugins' plugin.xml files. This class may be instantiated directly or via PluginInfoProvider. The difference is that PluginInfoProvider caches PluginInfo instances based on plugin source directory.


const { PluginInfo, PluginInfoProvider }  = require('cordova-common');

// The following instances are equal
const plugin1 = new PluginInfo('path/to/plugin_directory');
const plugin2 = new PluginInfoProvider().get('path/to/plugin_directory');

console.log(`The plugin ${} has version ${plugin1.version}`)


Utility module for dealing with sequential tasks. Provides a set of tasks that are needed to be done and reverts all tasks that are already completed if one of those tasks fail to complete. Used internally by cordova-lib and platform's plugin installation routines.


const { ActionStack } = require('cordova-common');

const stack = new ActionStack();
const action1 = stack.createAction(task1, [<task parameters>], task1_reverter, [<reverter_parameters>]);
const action2 = stack.createAction(task2, [<task parameters>], task2_reverter, [<reverter_parameters>]);


    .then(() => {
        // all actions succeded
    .catch(error => {
        // One of actions failed with error


Module for spawning child processes with some advanced logic.


const { superspawn } = require('cordova-common');

superspawn.spawn('adb', ['devices'])
    .progress(data => {
        if (data.stderr) console.error(`"adb devices" raised an error: ${data.stderr}`);
    .then(devices => {
        // Do something...


A set of utility methods for dealing with XML files.


const { xmlHelpers } = require('cordova-common');

const doc1 = xmlHelpers.parseElementtreeSync('some/xml/file');
const doc2 = xmlHelpers.parseElementtreeSync('another/xml/file');

xmlHelpers.mergeXml(doc1, doc2); // doc2 now contains all the nodes from doc1

Other APIs

The APIs listed below are also exposed but are intended to be only used internally by cordova plugin installation routines.

  • PlatformJson
  • ConfigChanges
  • ConfigKeeper
  • ConfigFile


  • Clone this repository onto your local machine

    git clone
  • Navigate to cordova-common directory, install dependencies and npm-link

    cd cordova-common && npm install && npm link
  • Navigate to cordova-lib directory and link cordova-common

    cd <cordova-lib directory> && npm link cordova-common && npm install

Current Tags

  • 4.0.2                                ...           latest (a year ago)
  • 4.0.3-nightly.2021.9.17.3c9b9ffb                                ...           nightly (11 days ago)
  • 1.0.0                                ...           rc (6 years ago)

1232 Versions

Today 13
This Week 244
This Month 1,750,512
Last Day 231
Last Week 8,300
Last Month 3,014,580
Dependencies (14)
Dev Dependencies (6)

Copyright 2014 - 2021 © |