function wrapComponents(componentWrappers) {
  for (let key in componentWrappers) {
    // look in Components for class by this name
    let Component = Components[key];
    // if not found, look in Controllers
    if (Component == null) {
      Component = Controllers[key];
    }
    // if still not found, warn and skip
    if (Component == null) {
      console.warn("Cannot wrap unknown WDK Component '" + key + "'.  Skipping...");
      continue;
    }
    // if found component/controller is not wrappable, log error and skip
    if (!("wrapComponent" in Component)) {
      console.error("Warning: WDK Component `%s` is not wrappable.  WDK version will be used.", key);
      continue;
    }
    // wrap found component/controller
    Component.wrapComponent(componentWrappers[key]);
  }
}
/**
 * Apply Component wrappers to WDK components and controllers. Keys of
 * 'componentWrappers' should correspond to Component or Controller names in
 * WDK. Values of `componentWrappers` are factories that return a new component.
 *
 * Note that this function applies wrappers "globally", meaning that all apps
 * returned by initialize will use the wrapped components, regardless of when
 * initialize and wrapComponents are called.
 *
 * @param {Object} componentWrappers
 */
Apply Component wrappers to WDK components and controllers. Keys of
'componentWrappers' should correspond to Component or Controller names in
WDK. Values of `componentWrappers` are factories that return a new component.

Note that this function applies wrappers "globally", meaning that all apps
returned by initialize will use the wrapped components, regardless of when
initialize and wrapComponents are called.

@param {Object} componentWrappers
Apply Component wrappers to WDK components and controllers . Keys of ' componentWrappers ' should correspond to Component or Controller names in WDK . Values of ` componentWrappers ` are factories that return a new component . Note that this function applies wrappers " globally " meaning that all apps returned by initialize will use the wrapped components regardless of when initialize and wrapComponents are called . @param { Object } componentWrappers
function wrapComponents(componentWrappers) {
  for (let key in componentWrappers) {
    let Component = Components[key];
    if (Component == null) {
      Component = Controllers[key];
    }
    if (Component == null) {
      console.warn("Cannot wrap unknown WDK Component '" + key + "'.  Skipping...");
      continue;
    }
    if (!("wrapComponent" in Component)) {
      console.error("Warning: WDK Component `%s` is not wrappable.  WDK version will be used.", key);
      continue;
    }
    Component.wrapComponent(componentWrappers[key]);
  }
}
function wrapComponents ( componentWrappers ) { for ( let key in componentWrappers ) { let Component = Components [ key ] ; if ( Component == null ) { Component = Controllers [ key ] ; } if ( Component == null ) { console . warn ( "Cannot wrap unknown WDK Component '" + key + "'.  Skipping..." ) ; continue ; } if ( ! ( "wrapComponent" in Component ) ) { console . error ( "Warning: WDK Component `%s` is not wrappable.  WDK version will be used." , key ) ; continue ; } Component . wrapComponent ( componentWrappers [ key ] ) ; } }
Apply Component wrappers to WDK components and controllers.
Apply Component wrappers to WDK components and controllers .
// look in Components for class by this name // if not found, look in Controllers // if still not found, warn and skip // if found component/controller is not wrappable, log error and skip // wrap found component/controller