for getting thems/apps ready for bundling
function readyBundleConf(app, wpConfig, modIncl, compDict, sassPath, appBundled, wpEntry, type, key, pack, packagesVer) {
  app.debug('preparing bundle for  %s', key);

  // lets theme use alias like "import widget from 'theme-name/widget'"
  wpConfig.resolve.alias[key] = `${pack.path}`;

  packagesVer[key] = pack.version;

  // limit path for loaders
  modIncl.push(new RegExp(`${key}/(?!.*node_modules)`));

  if (pack.zealderConfig) {
    // make dictionary of custom react Components
    if (pack.zealderConfig.reactComponent) {
      compDict += `"${key}": require('${pack.path}/${pack.zealderConfig.reactComponent}'),`;
    }

    // site bundle entries
    if (pack.zealderConfig.vendorJsFile) {
      if (!wpEntry.vendor) wpEntry.vendor = [];
      wpEntry.vendor.push(`${pack.path}/${pack.zealderConfig.vendorJsFile}`);
    }

    if (pack.zealderConfig.cssStyle) {
      // add style in opposite order so higher theme will have more authority
      wpEntry.app.unshift(`${pack.path}/${pack.zealderConfig.cssStyle}`);
    }

    if (pack.zealderConfig.sassPath) {
      /* when a theme needs to push sassPath up the chain. Maybe to
      make available to a framework/lib such as bootstrap */
      sassPath.push(`${pack.path}/${pack.zealderConfig.sassPath}`);
    }

    if (!appBundled && pack.zealderConfig.clientRenderFile
      && pack.zealderConfig.serverRenderFile && 'theme' == type ) {
      // first clientRenderFile found will be used; most themes shouldn't
      // need this if they use React/Redux becasue default theme is
      // sufficient. Themes that don't use/require React/Redux should
      // have own clientRenderFile and serverRenderFile
      wpEntry.app.push(`${pack.path}/${pack.zealderConfig.clientRenderFile}`);

      appBundled = key;
    }
  }
  // return these values
  return { compDict, appBundled };
}