package module import ( "context" "fmt" "github.com/dop251/goja" ) func assertType[T any](v goja.Value, rt *goja.Runtime) T { if c, ok := v.Export().(T); ok { return c } panic(rt.NewTypeError(fmt.Sprintf("expected value to be a '%T', got '%T'", new(T), v.Export()))) } func assertContext(v goja.Value, r *goja.Runtime) context.Context { return assertType[context.Context](v, r) } func assertObject(v goja.Value, r *goja.Runtime) map[string]any { return assertType[map[string]any](v, r) } func assertString(v goja.Value, r *goja.Runtime) string { return assertType[string](v, r) }