From c5b948963bedcacab57345e90f490fb6111bacd2 Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Sun, 12 Nov 2023 15:09:52 +0900 Subject: [PATCH 1/3] fix: fix a bug that a field is removed when aliases is inserted --- pkg/mv/registry_ast.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/mv/registry_ast.go b/pkg/mv/registry_ast.go index 8b9862a7..3726ae7a 100644 --- a/pkg/mv/registry_ast.go +++ b/pkg/mv/registry_ast.go @@ -87,7 +87,10 @@ func insertAliases(value ast.Node, idx int, oldPackageName string) error { return errors.New("node must be a mapping node") } - latterValues := mv.Values[idx:] + latterValues := make([]*ast.MappingValueNode, len(mv.Values[idx:])) + for i, v := range mv.Values[idx:] { + latterValues[i] = v + } mv.Values = mv.Values[:idx] mv.Merge(v) mv.Merge(&ast.MappingNode{ From 7b770393e7640804660d07e76762beb25b36b987 Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Sun, 12 Nov 2023 15:14:49 +0900 Subject: [PATCH 2/3] fix: fix lint error --- pkg/mv/registry_ast.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/mv/registry_ast.go b/pkg/mv/registry_ast.go index 3726ae7a..cd088a1a 100644 --- a/pkg/mv/registry_ast.go +++ b/pkg/mv/registry_ast.go @@ -88,9 +88,7 @@ func insertAliases(value ast.Node, idx int, oldPackageName string) error { } latterValues := make([]*ast.MappingValueNode, len(mv.Values[idx:])) - for i, v := range mv.Values[idx:] { - latterValues[i] = v - } + copy(latterValues, mv.Values[idx:]) mv.Values = mv.Values[:idx] mv.Merge(v) mv.Merge(&ast.MappingNode{ From 5db8a52d6b4cce6b8fbfaf9ad4f43389fc36088c Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Sun, 12 Nov 2023 15:34:12 +0900 Subject: [PATCH 3/3] fix: fix the indent of aliases --- pkg/mv/registry_ast.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/pkg/mv/registry_ast.go b/pkg/mv/registry_ast.go index cd088a1a..c799774b 100644 --- a/pkg/mv/registry_ast.go +++ b/pkg/mv/registry_ast.go @@ -71,26 +71,24 @@ func insertAliases(value ast.Node, idx int, oldPackageName string) error { return errors.New("value must be a mapping node") } - node, err := goccyYAML.ValueToNode(map[string]interface{}{ - "aliases": []*registry.Alias{ - { - Name: oldPackageName, - }, - }, - }) + f, err := parser.ParseBytes([]byte(fmt.Sprintf(`aliases: + - name: %s`, oldPackageName)), parser.ParseComments) if err != nil { - return fmt.Errorf("convert an alias to node: %w", err) + return fmt.Errorf("parse text as YAML: %w", err) } - - v, ok := node.(*ast.MappingNode) + mn, ok := f.Docs[0].Body.(*ast.MappingValueNode) if !ok { - return errors.New("node must be a mapping node") + return errors.New("body must be a mapping node") } latterValues := make([]*ast.MappingValueNode, len(mv.Values[idx:])) copy(latterValues, mv.Values[idx:]) mv.Values = mv.Values[:idx] - mv.Merge(v) + mv.Merge(&ast.MappingNode{ + Values: []*ast.MappingValueNode{ + mn, + }, + }) mv.Merge(&ast.MappingNode{ Values: latterValues, })