src/artifact_listing.js
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 );
   }
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 );
   }
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 ) ; }
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
Build the assets object for an artifact and the given themes .