code: public static <T> Mono<T> fromCompletionStage(Supplier<? extends CompletionStage<? extends T>> stageSupplier) {
  		return defer(() -> onAssembly(new MonoCompletionStage<>(stageSupplier.get())));
  	}
docs: Create a {@link Mono} that wraps a {@link CompletionStage} on subscription,
  emitting the value produced by the {@link CompletionStage}.
  
  <p>
  <img class="marble" src="doc-files/marbles/fromFutureSupplier.svg" alt="">
  <p>
  Note that the completion stage is not cancelled when that Mono is cancelled, but
  that behavior can be obtained by using {@link #doFinally(Consumer)} that checks
  for a {@link SignalType#CANCEL} and calls eg.
  {@link CompletionStage#toCompletableFuture() .toCompletableFuture().cancel(false)}.
  
  @param stageSupplier The {@link Supplier} of a {@link CompletionStage} that will produce a value (or a null to
  complete immediately). This allows lazy triggering of CompletionStage-based APIs.
  @param <T> type of the expected value
  @return A {@link Mono}.