spec/cordova/fixtures/projects/platformApi/platforms/windows/cordova/Api.js
function Api(platform, platformRootDir, eventEmitter) {
    this.platform = PLATFORM;
    this.root = path.resolve(__dirname, '..');

    setupEvents(eventEmitter);

    var self = this;
    this.locations = {
        root: self.root,
        www: path.join(self.root, 'www'),
        platformWww: path.join(self.root, 'platform_www'),
        configXml: path.join(self.root, 'config.xml'),
        defaultConfigXml: path.join(self.root, 'cordova/defaults.xml'),
        // NOTE: Due to platformApi spec we need to return relative paths here
        cordovaJs: 'template/www/cordova.js',
        cordovaJsSrc: 'cordova-js-src'
    };
}
function Api(platform, platformRootDir, eventEmitter) {
    this.platform = PLATFORM;
    this.root = path.resolve(__dirname, '..');

    setupEvents(eventEmitter);

    var self = this;
    this.locations = {
        root: self.root,
        www: path.join(self.root, 'www'),
        platformWww: path.join(self.root, 'platform_www'),
        configXml: path.join(self.root, 'config.xml'),
        defaultConfigXml: path.join(self.root, 'cordova/defaults.xml'),
        // NOTE: Due to platformApi spec we need to return relative paths here
        cordovaJs: 'template/www/cordova.js',
        cordovaJsSrc: 'cordova-js-src'
    };
}
Class, that acts as abstraction over particular platform. Encapsulates the
platform's properties and methods.

Platform that implements own PlatformApi instance _should implement all
prototype methods_ of this class to be fully compatible with cordova-lib.

The PlatformApi instance also should define the following field:

* platform: String that defines a platform name.