docs: public static DataFetcher wrapDataFetcher(DataFetcher delegateDataFetcher, BiFunction<DataFetchingEnvironment, Object, Object> mapFunction) {
          return environment -> {
              Object value = delegateDataFetcher.get(environment);
              if (value instanceof CompletionStage) {
                  //noinspection unchecked
                  return ((CompletionStage<Object>) value).thenApply(v -> mapFunction.apply(environment, v));
              } else {
                  return mapFunction.apply(environment, value);
              }
          };
      }