code: function buildAssets( artifact, themes = [] ) {
        const { descriptor } = artifact;
        const {
           assets,
           assetUrls,
           assetsForTheme,
           assetUrlsForTheme
        } = extendAssets( descriptor, defaultAssets( artifact ) );
  
        return Promise.all( [
           assetResolver
              .resolveAssets( artifact, [ ...assets, ...assetUrls ] )
              .then( requireAssets( requireFile, assets, assetUrls ) ),
           themes.length <= 0 ? {} : assetResolver
              .resolveThemedAssets( artifact, themes, [ ...assetsForTheme, ...assetUrlsForTheme ] )
              .then( requireAssets( requireFile, assetsForTheme, assetUrlsForTheme ) )
              .then( assets => ( { [ themes[ 0 ].name ]: assets } ) )
        ] ).then( merge );
     }
docs: Build the assets object for an artifact and the given themes.
  
  @memberOf ArtifactListing
  @param {Object} artifact
  the artifact to generate the asset listing for
  @param {Array<Object>} themes
  the themes to use for resolving themed artifacts
  @return {Object}
  the asset listing, containing sub-listings for each theme and entries
  for each (available) asset, pointing either to a URL or including
  the asset's raw content