MCPcopy Index your code
hub / github.com/getsops/sops / treeItemFromJSONDecoder

Method treeItemFromJSONDecoder

stores/json/store.go:156–197  ·  view source on GitHub ↗
(dec *json.Decoder)

Source from the content-addressed store, hash-verified

154var errEndOfObject = fmt.Errorf("End of object")
155
156func (store Store) treeItemFromJSONDecoder(dec *json.Decoder) (sops.TreeItem, error) {
157 var item sops.TreeItem
158 key, err := dec.Token()
159 if err != nil && err != io.EOF {
160 return item, err
161 }
162 if k, ok := key.(string); ok {
163 item.Key = k
164 } else if d, ok := key.(json.Delim); ok && d.String() == "}" {
165 return item, errEndOfObject
166 } else {
167 return item, fmt.Errorf("Expected JSON object key, got %s of type %T instead", key, key)
168 }
169 value, err := dec.Token()
170 if err != nil {
171 return item, err
172 }
173 if delim, ok := value.(json.Delim); ok {
174 if delim.String() == "[" {
175 v, err := store.sliceFromJSONDecoder(dec)
176 if err != nil {
177 return item, err
178 }
179 item.Value = v
180 }
181 if delim.String() == "{" {
182 v, err := store.treeBranchFromJSONDecoder(dec)
183 if err != nil {
184 return item, err
185 }
186 item.Value = v
187 }
188 } else {
189 v, err := normalizeJSONNumber(value)
190 if err != nil {
191 return item, err
192 }
193 item.Value = v
194 }
195 return item, nil
196
197}
198
199func (store Store) treeBranchFromJSONDecoder(dec *json.Decoder) (sops.TreeBranch, error) {
200 var tree sops.TreeBranch

Callers 1

Implementers 5

Storestores/dotenv/store.go
Storestores/ini/store.go
Storestores/yaml/store.go
Storestores/json/store.go
BinaryStorestores/json/store.go

Calls 4

sliceFromJSONDecoderMethod · 0.95
normalizeJSONNumberFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected