blob: 56c0dcd8c381d0e91b979717ea2444bd3dbe6ca5 [file] [log] [blame]
/* jshint node:true, unused:false */
var path = require('path');
var BuildConfig = require('cordova-common').BuildConfig;
var ConfigParser = require('cordova-common').ConfigParser;
/**
* Encapsulates and stores project information.
*
* @class
*/
function CordovaProject(root) {
/**
* Simple object that exposes this project's filesystem locations, such as www
* directory.
*
* @type {Object}
*/
this.locations = {
/** @type {String} Www directory location */
www: path.join(root, 'www'),
/** @type {String} config.xml file location */
configXml: path.join(root, 'config.xml'),
/** @type {String} Installed platforms location */
platforms: path.join(root, 'platforms'),
/** @type {String} Installed plugins location */
plugins: path.join(root, 'plugins')
};
/**
* The project's root location.
*
* @type {String}
*/
this.root = root;
/**
* Represents the configuration, used for building project. Populated with
* values from build.json, if exists, or with some default values,
* if not.
*
* @type {BuildConfig}
*/
this.buildConfig = new BuildConfig(root);
/**
* Represents the project design-time and runtime configuration which stored in
* project's config.xml file.
*
* @type {ConfigParser}
*/
this.projectConfig = new ConfigParser(this.locations.configXml);
}