nl_tokens: Calls platformApi . prepare for each platform in project
pl_tokens: function preparePlatforms ( platformList , projectRoot , options ) { return Promise . all ( platformList . map ( function ( platform ) { // TODO: this need to be replaced by real projectInfo // instance for current project. var project = { root : projectRoot , projectConfig : new ConfigParser ( cordova_util . projectConfig ( projectRoot ) ) , locations : { plugins : path . join ( projectRoot , 'plugins' ) , www : cordova_util . projectWww ( projectRoot ) , rootConfigXml : cordova_util . projectConfig ( projectRoot ) } } ; // CB-9987 We need to reinstall the plugins for the platform it they were added by cordova@<5.4.0 return module . exports . restoreMissingPluginsForPlatform ( platform , projectRoot , options ) . then ( function ( ) { // platformApi prepare takes care of all functionality // which previously had been executed by cordova.prepare: //   - reset config.xml and then merge changes from project's one, //   - update www directory from project's one and merge assets from platform_www, //   - reapply config changes, made by plugins, //   - update platform's project // Please note that plugins' changes, such as installed js files, assets and // config changes is not being reinstalled on each prepare. var platformApi = platforms . getPlatformApi ( platform ) ; return platformApi . prepare ( project , _ . clone ( options ) ) . then ( function ( ) { // Handle edit-config in config.xml var platformRoot = path . join ( projectRoot , 'platforms' , platform ) ; var platformJson = PlatformJson . <mask> ( platformRoot , platform ) ; var munger = new PlatformMunger ( platform , platformRoot , platformJson ) ; // the boolean argument below is "should_increment" munger . add_config_changes ( project . projectConfig , true ) . save_all ( ) ; } ) ; } ) ; } ) ) ; }