diff options
| author | mo khan <mo@mokhan.ca> | 2025-07-24 17:40:45 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-07-24 17:40:45 -0600 |
| commit | d48fe690c3c071cb5c8e3aa4d4672a32230a5e2d (patch) | |
| tree | 414f9e91877e901cb3de12be6f466cb4929f55ab /vendor/github.com/google/yamlfmt/formatters/basic/features | |
| parent | 7257c213887c6a80f727642b016606ec10340ed9 (diff) | |
refactor: extract job to process relationship updates in background
Diffstat (limited to 'vendor/github.com/google/yamlfmt/formatters/basic/features')
3 files changed, 111 insertions, 0 deletions
diff --git a/vendor/github.com/google/yamlfmt/formatters/basic/features/check.go b/vendor/github.com/google/yamlfmt/formatters/basic/features/check.go new file mode 100644 index 0000000..368de5c --- /dev/null +++ b/vendor/github.com/google/yamlfmt/formatters/basic/features/check.go @@ -0,0 +1,37 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package features + +import ( + "errors" + "fmt" + + "github.com/google/yamlfmt/pkg/yaml" +) + +func Check(n yaml.Node) error { + if n.Kind == yaml.AliasNode { + return errors.New("alias node found") + } + if n.Anchor != "" { + return fmt.Errorf("node references anchor %q", n.Anchor) + } + for _, c := range n.Content { + if err := Check(*c); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/google/yamlfmt/formatters/basic/features/force_sequence.go b/vendor/github.com/google/yamlfmt/formatters/basic/features/force_sequence.go new file mode 100644 index 0000000..f3f956c --- /dev/null +++ b/vendor/github.com/google/yamlfmt/formatters/basic/features/force_sequence.go @@ -0,0 +1,43 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package features + +import "github.com/google/yamlfmt/pkg/yaml" + +type SequenceStyle string + +const ( + SequenceStyleBlock SequenceStyle = "block" + SequenceStyleFlow SequenceStyle = "flow" +) + +func FeatureForceSequenceStyle(style SequenceStyle) YAMLFeatureFunc { + var styleVal yaml.Style + if style == SequenceStyleFlow { + styleVal = yaml.FlowStyle + } + var forceStyle YAMLFeatureFunc + forceStyle = func(n yaml.Node) error { + var err error + for _, c := range n.Content { + if c.Kind == yaml.SequenceNode { + c.Style = styleVal + } + err = forceStyle(*c) + } + return err + } + return forceStyle +} diff --git a/vendor/github.com/google/yamlfmt/formatters/basic/features/yaml_feature.go b/vendor/github.com/google/yamlfmt/formatters/basic/features/yaml_feature.go new file mode 100644 index 0000000..2657a53 --- /dev/null +++ b/vendor/github.com/google/yamlfmt/formatters/basic/features/yaml_feature.go @@ -0,0 +1,31 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package features + +import "github.com/google/yamlfmt/pkg/yaml" + +// These features will directly use the `yaml.Node` type and +// as such are specific to this formatter. +type YAMLFeatureFunc func(yaml.Node) error +type YAMLFeatureList []YAMLFeatureFunc + +func (y YAMLFeatureList) ApplyFeatures(node yaml.Node) error { + for _, f := range y { + if err := f(node); err != nil { + return err + } + } + return nil +} |
