MCPcopy Create free account
hub / github.com/compose-spec/compose-go / resolveRelativePaths

Method resolveRelativePaths

paths/resolve.go:73–98  ·  view source on GitHub ↗
(value any, p tree.Path)

Source from the content-addressed store, hash-verified

71}
72
73func (r *relativePathsResolver) resolveRelativePaths(value any, p tree.Path) (any, error) {
74 for pattern, resolver := range r.resolvers {
75 if p.Matches(pattern) {
76 return resolver(value)
77 }
78 }
79 switch v := value.(type) {
80 case map[string]any:
81 for k, e := range v {
82 resolved, err := r.resolveRelativePaths(e, p.Next(k))
83 if err != nil {
84 return nil, err
85 }
86 v[k] = resolved
87 }
88 case []any:
89 for i, e := range v {
90 resolved, err := r.resolveRelativePaths(e, p.Next("[]"))
91 if err != nil {
92 return nil, err
93 }
94 v[i] = resolved
95 }
96 }
97 return value, nil
98}
99
100func (r *relativePathsResolver) absPath(value any) (any, error) {
101 switch v := value.(type) {

Callers 1

ResolveRelativePathsFunction · 0.95

Calls 3

resolverFuncType · 0.85
MatchesMethod · 0.80
NextMethod · 0.80

Tested by

no test coverage detected