code: function followWidget( widgetRef ) {
        return resolveRef( join( widgetRef, 'widget.json' ), paths.widgets )
           .then( descriptorPath => readJson( descriptorPath ).then( widget => {
              const path = dirname( descriptorPath );
              const name = widget.name;
              if( !name ) {
                 return Promise.reject( 'Widget descriptor is missing name: ', path );
              }
              const controls = widget.controls;
  
              return [ {
                 refs: [ widgetRef ],
                 name,
                 path,
                 descriptor: widget,
                 category: 'widgets',
                 schemas: [ 'widget' ],
  
                 controls
              } ];
           } ) );
     }
docs: ///////////////////////////////////////////////////////////////////////////////////////////////////////// 
  Collect meta information about a single widget.
  
  @private
  @memberOf ArtifactCollector
  @param {String} widgetRef the widget reference (relative to `paths.widgets`) to follow
  @return {Promise<Array>} a promise for an array containing meta-formation about a single widget