Move processing, evaluation, and related functions to internal/process
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -1,4 +1,4 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -134,7 +134,7 @@ func getCrossDoc(docs []*document.Document, pat any) (*document.Document, error)
|
||||
var ret *document.Document
|
||||
|
||||
for _, doc := range docs {
|
||||
if matchDoc(doc, pat) {
|
||||
if MatchDoc(doc, pat) {
|
||||
if ret != nil {
|
||||
return nil, fmt.Errorf("%#v: %w", pat, errors.ErrMultiMatch)
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
import (
|
||||
"github.com/gopatchy/bkl/internal/document"
|
||||
"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)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"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.Data == nil {
|
||||
return nil
|
||||
@@ -1,4 +1,4 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -1,4 +1,4 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
@@ -93,7 +93,7 @@ func process2Encode(obj any, mergeFrom *document.Document, mergeFromDocs []*docu
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = validate(obj2)
|
||||
err = Validate(obj2)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
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
|
||||
|
||||
ec := newEvalContext(env)
|
||||
@@ -1,4 +1,4 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -1,4 +1,4 @@
|
||||
package bkl
|
||||
package process
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"golang.org/x/exp/utf8string"
|
||||
)
|
||||
|
||||
func validate(obj any) error {
|
||||
func Validate(obj any) error {
|
||||
switch obj2 := obj.(type) {
|
||||
case map[string]any:
|
||||
return validateMap(obj2)
|
||||
@@ -26,12 +26,12 @@ func validate(obj any) error {
|
||||
|
||||
func validateMap(obj map[string]any) error {
|
||||
for k, v := range obj {
|
||||
err := validate(k)
|
||||
err := Validate(k)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s: %w", k, err)
|
||||
}
|
||||
|
||||
err = validate(v)
|
||||
err = Validate(v)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s: %w", k, err)
|
||||
}
|
||||
@@ -42,7 +42,7 @@ func validateMap(obj map[string]any) error {
|
||||
|
||||
func validateList(obj []any) error {
|
||||
for _, v := range obj {
|
||||
err := validate(v)
|
||||
err := Validate(v)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -13,10 +13,10 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/gopatchy/bkl/internal/document"
|
||||
|
||||
"github.com/gopatchy/bkl/internal/file"
|
||||
"github.com/gopatchy/bkl/internal/format"
|
||||
"github.com/gopatchy/bkl/internal/fsys"
|
||||
"github.com/gopatchy/bkl/internal/process"
|
||||
"github.com/gopatchy/bkl/internal/utils"
|
||||
"github.com/gopatchy/bkl/pkg/errors"
|
||||
)
|
||||
@@ -95,7 +95,7 @@ func (b *bkl) mergeDocument(patch *document.Document) error {
|
||||
for _, doc := range b.parents(patch) {
|
||||
matched = true
|
||||
|
||||
err = mergeDocs(doc, patch)
|
||||
err = process.MergeDocs(doc, patch)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -135,7 +135,7 @@ func (b *bkl) mergePatchMatch(patch *document.Document) (bool, error) {
|
||||
// Explicit append
|
||||
doc := document.New(fmt.Sprintf("%s|matchnull", patch.ID))
|
||||
b.docs = append(b.docs, doc)
|
||||
return true, mergeDocs(doc, patch)
|
||||
return true, process.MergeDocs(doc, patch)
|
||||
}
|
||||
|
||||
docs := b.findMatches(patch, m)
|
||||
@@ -144,7 +144,7 @@ func (b *bkl) mergePatchMatch(patch *document.Document) (bool, error) {
|
||||
}
|
||||
|
||||
for _, doc := range docs {
|
||||
err := mergeDocs(doc, patch)
|
||||
err := process.MergeDocs(doc, patch)
|
||||
if err != nil {
|
||||
return true, err
|
||||
}
|
||||
@@ -159,7 +159,7 @@ func (b *bkl) findMatches(doc *document.Document, pat any) []*document.Document
|
||||
// Try parents, then all docs
|
||||
for _, ds := range [][]*document.Document{b.parents(doc), b.docs} {
|
||||
for _, d := range ds {
|
||||
if matchDoc(d, pat) {
|
||||
if process.MatchDoc(d, pat) {
|
||||
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
|
||||
// document.
|
||||
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 {
|
||||
return nil, err
|
||||
}
|
||||
@@ -243,7 +243,7 @@ func (b *bkl) outputDocument(doc *document.Document, env map[string]string) ([]a
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
err = validate(v2)
|
||||
err = process.Validate(v2)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user