wrap-expression

The wrap-expression advice replaces the matched node with the one produced by the provided code template. Care must be taken to not change the type of the expression, as this could result in breaking surrounding code.

It is commonly used to wrap values in immediately-invoked function expressions (IIFE).

Examples

wrap-expression:
    imports:
        mongotrace: gopkg.in/DataDog/dd-trace-go.v1/contrib/go.mongodb.org/mongo-driver/mongo
        options: go.mongodb.org/mongo-driver/mongo/options
    template: '{{ . }}.SetMonitor(mongotrace.NewMonitor())'
wrap-expression:
    imports:
        chi: github.com/go-chi/chi
        chitrace: gopkg.in/DataDog/dd-trace-go.v1/contrib/go-chi/chi
    template: |-
        func() *chi.Mux {
        	mux := {{ . }}
        	mux.Use(chitrace.Middleware())
        	return mux
        }()