Move processing, evaluation, and related functions to internal/process

This commit is contained in:
Ian Gulliver
2025-06-27 21:00:02 -07:00
parent 7d83b320de
commit 92ba299941
10 changed files with 25 additions and 25 deletions
@@ -1,4 +1,4 @@
package bkl package process
import ( import (
"fmt" "fmt"
+2 -2
View File
@@ -1,4 +1,4 @@
package bkl package process
import ( import (
"fmt" "fmt"
@@ -134,7 +134,7 @@ func getCrossDoc(docs []*document.Document, pat any) (*document.Document, error)
var ret *document.Document var ret *document.Document
for _, doc := range docs { for _, doc := range docs {
if matchDoc(doc, pat) { if MatchDoc(doc, pat) {
if ret != nil { if ret != nil {
return nil, fmt.Errorf("%#v: %w", pat, errors.ErrMultiMatch) return nil, fmt.Errorf("%#v: %w", pat, errors.ErrMultiMatch)
} }
+2 -2
View File
@@ -1,11 +1,11 @@
package bkl package process
import ( import (
"github.com/gopatchy/bkl/internal/document" "github.com/gopatchy/bkl/internal/document"
"github.com/gopatchy/bkl/internal/utils" "github.com/gopatchy/bkl/internal/utils"
) )
func matchDoc(doc *document.Document, pat any) bool { func MatchDoc(doc *document.Document, pat any) bool {
return match(doc.Data, pat) return match(doc.Data, pat)
} }
+2 -2
View File
@@ -1,4 +1,4 @@
package bkl package process
import ( import (
"fmt" "fmt"
@@ -9,7 +9,7 @@ import (
"github.com/gopatchy/bkl/pkg/errors" "github.com/gopatchy/bkl/pkg/errors"
) )
func mergeDocs(doc, patch *document.Document) error { func MergeDocs(doc, patch *document.Document) error {
// If patch document is completely empty (nil), it's a no-op // If patch document is completely empty (nil), it's a no-op
if patch.Data == nil { if patch.Data == nil {
return nil return nil
+1 -1
View File
@@ -1,4 +1,4 @@
package bkl package process
import ( import (
"fmt" "fmt"
+2 -2
View File
@@ -1,4 +1,4 @@
package bkl package process
import ( import (
"crypto/sha256" "crypto/sha256"
@@ -93,7 +93,7 @@ func process2Encode(obj any, mergeFrom *document.Document, mergeFromDocs []*docu
return nil, err return nil, err
} }
err = validate(obj2) err = Validate(obj2)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -1,8 +1,8 @@
package bkl package process
import "github.com/gopatchy/bkl/internal/document" import "github.com/gopatchy/bkl/internal/document"
func processDocument(d *document.Document, mergeFromDocs []*document.Document, env map[string]string) ([]*document.Document, error) { func Document(d *document.Document, mergeFromDocs []*document.Document, env map[string]string) ([]*document.Document, error) {
var err error var err error
ec := newEvalContext(env) ec := newEvalContext(env)
+1 -1
View File
@@ -1,4 +1,4 @@
package bkl package process
import ( import (
"fmt" "fmt"
+5 -5
View File
@@ -1,4 +1,4 @@
package bkl package process
import ( import (
"fmt" "fmt"
@@ -8,7 +8,7 @@ import (
"golang.org/x/exp/utf8string" "golang.org/x/exp/utf8string"
) )
func validate(obj any) error { func Validate(obj any) error {
switch obj2 := obj.(type) { switch obj2 := obj.(type) {
case map[string]any: case map[string]any:
return validateMap(obj2) return validateMap(obj2)
@@ -26,12 +26,12 @@ func validate(obj any) error {
func validateMap(obj map[string]any) error { func validateMap(obj map[string]any) error {
for k, v := range obj { for k, v := range obj {
err := validate(k) err := Validate(k)
if err != nil { if err != nil {
return fmt.Errorf("%s: %w", k, err) return fmt.Errorf("%s: %w", k, err)
} }
err = validate(v) err = Validate(v)
if err != nil { if err != nil {
return fmt.Errorf("%s: %w", k, err) return fmt.Errorf("%s: %w", k, err)
} }
@@ -42,7 +42,7 @@ func validateMap(obj map[string]any) error {
func validateList(obj []any) error { func validateList(obj []any) error {
for _, v := range obj { for _, v := range obj {
err := validate(v) err := Validate(v)
if err != nil { if err != nil {
return err return err
} }
+7 -7
View File
@@ -13,10 +13,10 @@ import (
"strings" "strings"
"github.com/gopatchy/bkl/internal/document" "github.com/gopatchy/bkl/internal/document"
"github.com/gopatchy/bkl/internal/file" "github.com/gopatchy/bkl/internal/file"
"github.com/gopatchy/bkl/internal/format" "github.com/gopatchy/bkl/internal/format"
"github.com/gopatchy/bkl/internal/fsys" "github.com/gopatchy/bkl/internal/fsys"
"github.com/gopatchy/bkl/internal/process"
"github.com/gopatchy/bkl/internal/utils" "github.com/gopatchy/bkl/internal/utils"
"github.com/gopatchy/bkl/pkg/errors" "github.com/gopatchy/bkl/pkg/errors"
) )
@@ -95,7 +95,7 @@ func (b *bkl) mergeDocument(patch *document.Document) error {
for _, doc := range b.parents(patch) { for _, doc := range b.parents(patch) {
matched = true matched = true
err = mergeDocs(doc, patch) err = process.MergeDocs(doc, patch)
if err != nil { if err != nil {
return err return err
} }
@@ -135,7 +135,7 @@ func (b *bkl) mergePatchMatch(patch *document.Document) (bool, error) {
// Explicit append // Explicit append
doc := document.New(fmt.Sprintf("%s|matchnull", patch.ID)) doc := document.New(fmt.Sprintf("%s|matchnull", patch.ID))
b.docs = append(b.docs, doc) b.docs = append(b.docs, doc)
return true, mergeDocs(doc, patch) return true, process.MergeDocs(doc, patch)
} }
docs := b.findMatches(patch, m) docs := b.findMatches(patch, m)
@@ -144,7 +144,7 @@ func (b *bkl) mergePatchMatch(patch *document.Document) (bool, error) {
} }
for _, doc := range docs { for _, doc := range docs {
err := mergeDocs(doc, patch) err := process.MergeDocs(doc, patch)
if err != nil { if err != nil {
return true, err return true, err
} }
@@ -159,7 +159,7 @@ func (b *bkl) findMatches(doc *document.Document, pat any) []*document.Document
// Try parents, then all docs // Try parents, then all docs
for _, ds := range [][]*document.Document{b.parents(doc), b.docs} { for _, ds := range [][]*document.Document{b.parents(doc), b.docs} {
for _, d := range ds { for _, d := range ds {
if matchDoc(d, pat) { if process.MatchDoc(d, pat) {
ret = append(ret, d) ret = append(ret, d)
} }
} }
@@ -213,7 +213,7 @@ func (b *bkl) mergeFileObj(f *file.File) error {
// outputDocument returns the output objects generated by the specified // outputDocument returns the output objects generated by the specified
// document. // document.
func (b *bkl) outputDocument(doc *document.Document, env map[string]string) ([]any, error) { func (b *bkl) outputDocument(doc *document.Document, env map[string]string) ([]any, error) {
docs, err := processDocument(doc, b.docs, env) docs, err := process.Document(doc, b.docs, env)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -243,7 +243,7 @@ func (b *bkl) outputDocument(doc *document.Document, env map[string]string) ([]a
return nil, nil return nil, nil
} }
err = validate(v2) err = process.Validate(v2)
if err != nil { if err != nil {
return nil, err return nil, err
} }