code: function ModuleMetadata (pluginId, jsModule) {
  
      if (!pluginId) throw new TypeError('pluginId argument must be a valid plugin id');
      if (!jsModule.src && !jsModule.name) throw new TypeError('jsModule argument must contain src or/and name properties');
  
      this.id  = pluginId + '.' + ( jsModule.name || jsModule.src.match(/([^\/]+)\.js/)[1] );
      this.file = ['plugins', pluginId, jsModule.src].join('/');
      this.pluginId = pluginId;
  
      if (jsModule.clobbers && jsModule.clobbers.length > 0) {
          this.clobbers = jsModule.clobbers.map(function(o) { return o.target; });
      }
      if (jsModule.merges && jsModule.merges.length > 0) {
          this.merges = jsModule.merges.map(function(o) { return o.target; });
      }
      if (jsModule.runs) {
          this.runs = true;
      }
  }
docs: @constructor
  @class ModuleMetadata
  
  Creates a ModuleMetadata object that represents module entry in 'cordova_plugins.js'
  file at run time
  
  @param {String}  pluginId  Plugin id where this module installed from
  @param (JsModule|Object)  jsModule  A js-module entry from PluginInfo class to generate metadata for