MCPcopy Create free account
hub / github.com/wavetermdev/waveterm / attrToProp

Function attrToProp

pkg/vdom/vdom_html.go:86–127  ·  view source on GitHub ↗
(attrVal string, isJson bool, params map[string]any)

Source from the content-addressed store, hash-verified

84}
85
86func attrToProp(attrVal string, isJson bool, params map[string]any) any {
87 if isJson {
88 var val any
89 err := json.Unmarshal([]byte(attrVal), &val)
90 if err != nil {
91 return nil
92 }
93 unmStrVal, ok := val.(string)
94 if !ok {
95 return val
96 }
97 attrVal = unmStrVal
98 // fallthrough using the json str val
99 }
100 if strings.HasPrefix(attrVal, Html_ParamPrefix) {
101 bindKey := attrVal[len(Html_ParamPrefix):]
102 bindVal, ok := params[bindKey]
103 if !ok {
104 return nil
105 }
106 return bindVal
107 }
108 if strings.HasPrefix(attrVal, Html_BindPrefix) {
109 bindKey := attrVal[len(Html_BindPrefix):]
110 if bindKey == "" {
111 return nil
112 }
113 return &VDomBinding{Type: ObjectType_Binding, Bind: bindKey}
114 }
115 if strings.HasPrefix(attrVal, Html_GlobalEventPrefix) {
116 splitArr := strings.Split(attrVal, ":")
117 if len(splitArr) < 2 {
118 return nil
119 }
120 eventName := splitArr[1]
121 if eventName == "" {
122 return nil
123 }
124 return &VDomFunc{Type: ObjectType_Func, GlobalEvent: eventName}
125 }
126 return attrVal
127}
128
129func tokenToElem(token htmltoken.Token, params map[string]any) *VDomElem {
130 elem := &VDomElem{Tag: token.Data}

Callers 2

tokenToElemFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected