MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / pluginItemUnmarshalYAML

Function pluginItemUnmarshalYAML

resources/plugin/plugin-load.go:90–160  ·  view source on GitHub ↗
(sorts []string, nodes []*yaml.Node)

Source from the content-addressed store, hash-verified

88 return nil
89}
90func pluginItemUnmarshalYAML(sorts []string, nodes []*yaml.Node) ([]*plugin_model.Define, error) {
91 if len(nodes) == 0 {
92 return nil, fmt.Errorf("yaml: error decoding plugin is empty")
93 }
94 type defineItem struct {
95 *plugin_model.Define
96 sort int
97 }
98 sortBase := len(sorts) + 1
99 Items := make([]*defineItem, 0, len(nodes)/2-2)
100 for i := 0; i < len(nodes); i += 2 {
101 k := nodes[i].Value
102 v := nodes[i+1]
103 it := new(defineT)
104
105 err := v.Decode(&it)
106 if err != nil {
107 log.Printf("yaml: error decoding %s: %v", v.Value, err)
108 return nil, err
109 }
110 Items = append(Items, &defineItem{
111
112 Define: &plugin_model.Define{
113 Extend: it.Id,
114 Name: k,
115 Cname: it.CName,
116 Desc: it.Desc,
117 Kind: plugin_model.ParseKind(it.Kind),
118 Status: plugin_model.ParseStatus(it.Status),
119 Config: it.Config,
120 },
121 sort: i + sortBase,
122 })
123 }
124
125 sortValues := make(map[string]int, len(sorts))
126 for i, v := range sorts {
127 sortValues[v] = i
128 }
129
130 for _, v := range Items {
131 if s, has := sortValues[v.Name]; has {
132 v.sort = s
133 }
134 extend := v.Extend
135 extend = strings.Replace(extend, ".", "_", -1)
136 //extend = strings.Replace(extend, "-", "_", -1)
137 extend = strings.Replace(extend, ":", "_", -1)
138 renderBody, err := renders.ReadFile(fmt.Sprintf("render/%s.json", extend))
139 if err != nil {
140 return nil, err
141 }
142 renderObj := new(defineRender)
143 err = json.Unmarshal(renderBody, renderObj)
144 if err != nil {
145 return nil, err
146 }
147 v.Render = renderObj.Render

Callers 1

UnmarshalYAMLMethod · 0.85

Calls 3

ParseKindFunction · 0.92
ParseStatusFunction · 0.92
SortMethod · 0.65

Tested by

no test coverage detected