migratePackagesArray migrates a legacy array of package versionedNames to an object. See packagesField for details.
(pkgs *hujson.Value)
| 300 | // migratePackagesArray migrates a legacy array of package versionedNames to an |
| 301 | // object. See packagesField for details. |
| 302 | func (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. |
no test coverage detected