MCPcopy Index your code
hub / github.com/jetify-com/devbox / migratePackagesArray

Method migratePackagesArray

internal/devconfig/configfile/ast.go:302–324  ·  view source on GitHub ↗

migratePackagesArray migrates a legacy array of package versionedNames to an object. See packagesField for details.

(pkgs *hujson.Value)

Source from the content-addressed store, hash-verified

300// migratePackagesArray migrates a legacy array of package versionedNames to an
301// object. See packagesField for details.
302func (c *configAST) migratePackagesArray(pkgs *hujson.Value) {
303 arr := pkgs.Value.(*hujson.Array)
304 obj := &hujson.Object{Members: make([]hujson.ObjectMember, len(arr.Elements))}
305 for i, elem := range arr.Elements {
306 name, version := parseVersionedName(elem.Value.(hujson.Literal).String())
307
308 // Preserve any comments above the array elements.
309 var before []byte
310 if comment := bytes.TrimSpace(elem.BeforeExtra); len(comment) > 0 {
311 before = append([]byte{'\n'}, comment...)
312 }
313 before = append(before, '\n')
314
315 obj.Members[i] = hujson.ObjectMember{
316 Name: hujson.Value{
317 Value: hujson.String(name),
318 BeforeExtra: before,
319 },
320 Value: hujson.Value{Value: hujson.String(version)},
321 }
322 }
323 pkgs.Value = obj
324}
325
326// convertVersionToObject transforms a version string into an object with the
327// version as a field.

Callers 1

packagesFieldMethod · 0.95

Calls 2

parseVersionedNameFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected