func parseURL()

in lib/http.go [966:996]


func parseURL(arg ref.Val) ref.Val {
	addr, ok := arg.(types.String)
	if !ok {
		return types.ValOrErr(addr, "no such overload for request")
	}
	u, err := url.Parse(string(addr))
	if err != nil {
		return types.NewErr("%s", err)
	}
	var user interface{}
	if u.User != nil {
		password, passwordSet := u.User.Password()
		user = map[string]interface{}{
			"Username":    u.User.Username(),
			"Password":    password,
			"PasswordSet": passwordSet,
		}
	}
	return types.NewStringInterfaceMap(types.DefaultTypeAdapter, map[string]interface{}{
		"Scheme":      u.Scheme,
		"Opaque":      u.Opaque,
		"User":        user,
		"Host":        u.Host,
		"Path":        u.Path,
		"RawPath":     u.RawPath,
		"ForceQuery":  u.ForceQuery,
		"RawQuery":    u.RawQuery,
		"Fragment":    u.Fragment,
		"RawFragment": u.RawFragment,
	})
}