github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/analytics/context.go (about)

     1  package analytics
     2  
     3  import "context"
     4  
     5  type contextKey struct{}
     6  
     7  var analyticsContextKey = contextKey{}
     8  
     9  func WithAnalytics(ctx context.Context, a *TiltAnalytics) context.Context {
    10  	return context.WithValue(ctx, analyticsContextKey, a)
    11  }
    12  
    13  func Get(ctx context.Context) *TiltAnalytics {
    14  	val := ctx.Value(analyticsContextKey)
    15  
    16  	if val != nil {
    17  		return val.(*TiltAnalytics)
    18  	}
    19  
    20  	// No analytics found in context, something is wrong.
    21  	panic("Called analytics.Get(ctx) on a context with no analytics attached!")
    22  }