code: function preCacheQueries(queries) {
    var groupBy = {};
    _.each(queries, function (query) {
      if (!query.queryKey) {
        return;
      }
      var hasAllValues = _.reduce(_.values(query.queryParams), function (acc, val) {
        return acc && (val !== null);
      }, true);
      if (hasAllValues) {
        var cacheKey = _executionCache.getKey(query);
        groupBy[cacheKey] = groupBy[cacheKey] || [];
        groupBy[cacheKey].push(query);
      }
    });
  
    _.each(groupBy, function (groupedQueries, key) {
      var aggregateShape = _.reduce(_.map(groupedQueries, 'shape'), _.assign, {});
      var query = _.cloneDeep(groupedQueries[0]);
      query.shape = aggregateShape;
      _executionCache.execute(query);
    });
  }
docs: /* Merge shapes of queries which have completed inputs and build their promises.