func denormalizeJWP()

in go/metadata/capabilities/capabilities.go [323:375]


func denormalizeJWP(caps map[string]interface{}) map[string]interface{} {
	out := map[string]interface{}{}

	for k, v := range caps {
		if k == "goog:chromeOptions" {
			out["chromeOptions"] = v
			out["goog:chromeOptions"] = v
			continue
		} else if k == "goog:loggingPrefs" {
			out["loggingPrefs"] = v
			out["goog:loggingPrefs"] = v
			continue
		}

		if k != "proxy" {
			out[k] = v
			continue
		}

		proxy, ok := v.(map[string]interface{})
		if !ok {
			out[k] = v
			continue
		}

		outProxy := map[string]interface{}{}
		for pk, pv := range proxy {
			if pk != "noProxy" {
				outProxy[pk] = pv
				continue
			}

			noProxy, ok := pv.([]interface{})
			if !ok {
				outProxy["noProxy"] = pv
				continue
			}

			var noProxys []string

			for _, npv := range noProxy {
				nps := npv.(string)
				noProxys = append(noProxys, nps)
			}

			outProxy["noProxy"] = strings.Join(noProxys, ",")
		}

		out["proxy"] = outProxy
	}

	return out
}