func wrapFunction()

in funcframework/framework.go [160:192]


func wrapFunction(fn *registry.RegisteredFunction) (http.Handler, error) {
	// Check if we have a function resource set, and if so, log progress.
	if os.Getenv("FUNCTION_TARGET") == "" {
		fmt.Printf("Serving function: %q\n", fn.Name)
	}

	if fn.HTTPFn != nil {
		handler, err := wrapHTTPFunction(fn.HTTPFn)
		if err != nil {
			return nil, fmt.Errorf("unexpected error in wrapHTTPFunction: %v", err)
		}
		return handler, nil
	} else if fn.CloudEventFn != nil {
		handler, err := wrapCloudEventFunction(context.Background(), fn.CloudEventFn)
		if err != nil {
			return nil, fmt.Errorf("unexpected error in wrapCloudEventFunction: %v", err)
		}
		return handler, nil
	} else if fn.EventFn != nil {
		handler, err := wrapEventFunction(fn.EventFn)
		if err != nil {
			return nil, fmt.Errorf("unexpected error in wrapEventFunction: %v", err)
		}
		return handler, nil
	} else if fn.TypedFn != nil {
		handler, err := wrapTypedFunction(fn.TypedFn)
		if err != nil {
			return nil, fmt.Errorf("unexpected error in wrapTypedFunction: %v", err)
		}
		return handler, nil
	}
	return nil, fmt.Errorf("missing function entry in %v", fn)
}