Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove unmaintained errors pkg(github.com/pkg/errors) #206

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 50 additions & 51 deletions patch.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ package jsonpatch
import (
"bytes"
"encoding/json"
"errors"
"fmt"
"strconv"
"strings"

"github.com/pkg/errors"
)

const (
Expand Down Expand Up @@ -277,7 +276,7 @@ func (o Operation) Path() (string, error) {
return op, nil
}

return "unknown", errors.Wrapf(ErrMissing, "operation missing path field")
return "unknown", fmt.Errorf("operation missing path field: %w", ErrMissing)
}

// From reads the "from" field of the Operation.
Expand All @@ -294,7 +293,7 @@ func (o Operation) From() (string, error) {
return op, nil
}

return "unknown", errors.Wrapf(ErrMissing, "operation, missing from field")
return "unknown", fmt.Errorf("operation, missing from field: %w", ErrMissing)
}

func (o Operation) value() *lazyNode {
Expand All @@ -319,7 +318,7 @@ func (o Operation) ValueInterface() (interface{}, error) {
return v, nil
}

return nil, errors.Wrapf(ErrMissing, "operation, missing value field")
return nil, fmt.Errorf("operation, missing value field: %w", ErrMissing)
}

func isArray(buf []byte) bool {
Expand Down Expand Up @@ -398,7 +397,7 @@ func (d *partialDoc) get(key string) (*lazyNode, error) {
func (d *partialDoc) remove(key string) error {
_, ok := (*d)[key]
if !ok {
return errors.Wrapf(ErrMissing, "Unable to remove nonexistent key: %s", key)
return fmt.Errorf("Unable to remove nonexistent key: %s: %w", key, ErrMissing)
}

delete(*d, key)
Expand All @@ -415,10 +414,10 @@ func (d *partialArray) set(key string, val *lazyNode) error {

if idx < 0 {
if !SupportNegativeIndices {
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return fmt.Errorf("Unable to access invalid index: %d : %w", idx, ErrInvalidIndex)
}
if idx < -len(*d) {
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
idx += len(*d)
}
Expand All @@ -435,7 +434,7 @@ func (d *partialArray) add(key string, val *lazyNode) error {

idx, err := strconv.Atoi(key)
if err != nil {
return errors.Wrapf(err, "value was not a proper array index: '%s'", key)
return fmt.Errorf("value was not a proper array index: '%s': %w", key, err)
}

sz := len(*d) + 1
Expand All @@ -445,15 +444,15 @@ func (d *partialArray) add(key string, val *lazyNode) error {
cur := *d

if idx >= len(ary) {
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}

if idx < 0 {
if !SupportNegativeIndices {
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < -len(ary) {
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
idx += len(ary)
}
Expand All @@ -475,16 +474,16 @@ func (d *partialArray) get(key string) (*lazyNode, error) {

if idx < 0 {
if !SupportNegativeIndices {
return nil, errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return nil, fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < -len(*d) {
return nil, errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return nil, fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
idx += len(*d)
}

if idx >= len(*d) {
return nil, errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return nil, fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}

return (*d)[idx], nil
Expand All @@ -499,15 +498,15 @@ func (d *partialArray) remove(key string) error {
cur := *d

if idx >= len(cur) {
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}

if idx < 0 {
if !SupportNegativeIndices {
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < -len(cur) {
return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
idx += len(cur)
}
Expand All @@ -525,18 +524,18 @@ func (d *partialArray) remove(key string) error {
func (p Patch) add(doc *container, op Operation) error {
path, err := op.Path()
if err != nil {
return errors.Wrapf(ErrMissing, "add operation failed to decode path")
return fmt.Errorf("add operation failed to decode path: %w", ErrMissing)
}

con, key := findObject(doc, path)

if con == nil {
return errors.Wrapf(ErrMissing, "add operation does not apply: doc is missing path: \"%s\"", path)
return fmt.Errorf("add operation does not apply: doc is missing path: \"%s\": %w", path, ErrMissing)
}

err = con.add(key, op.value())
if err != nil {
return errors.Wrapf(err, "error in add for path: '%s'", path)
return fmt.Errorf("error in add for path: '%s': %w", path, err)
}

return nil
Expand All @@ -545,18 +544,18 @@ func (p Patch) add(doc *container, op Operation) error {
func (p Patch) remove(doc *container, op Operation) error {
path, err := op.Path()
if err != nil {
return errors.Wrapf(ErrMissing, "remove operation failed to decode path")
return fmt.Errorf("remove operation failed to decode path: %w", ErrMissing)
}

con, key := findObject(doc, path)

if con == nil {
return errors.Wrapf(ErrMissing, "remove operation does not apply: doc is missing path: \"%s\"", path)
return fmt.Errorf("remove operation does not apply: doc is missing path: \"%s\": %w", path, ErrMissing)
}

err = con.remove(key)
if err != nil {
return errors.Wrapf(err, "error in remove for path: '%s'", path)
return fmt.Errorf("error in remove for path: '%s': %w", path, err)
}

return nil
Expand All @@ -565,7 +564,7 @@ func (p Patch) remove(doc *container, op Operation) error {
func (p Patch) replace(doc *container, op Operation) error {
path, err := op.Path()
if err != nil {
return errors.Wrapf(err, "replace operation failed to decode path")
return fmt.Errorf("replace operation failed to decode path: %w", err)
}

if path == "" {
Expand All @@ -574,7 +573,7 @@ func (p Patch) replace(doc *container, op Operation) error {
if val.which == eRaw {
if !val.tryDoc() {
if !val.tryAry() {
return errors.Wrapf(err, "replace operation value must be object or array")
return fmt.Errorf("replace operation value must be object or array: %w", err)
}
}
}
Expand All @@ -585,7 +584,7 @@ func (p Patch) replace(doc *container, op Operation) error {
case eDoc:
*doc = &val.doc
case eRaw:
return errors.Wrapf(err, "replace operation hit impossible case")
return fmt.Errorf("replace operation hit impossible case: %w", err)
}

return nil
Expand All @@ -594,17 +593,17 @@ func (p Patch) replace(doc *container, op Operation) error {
con, key := findObject(doc, path)

if con == nil {
return errors.Wrapf(ErrMissing, "replace operation does not apply: doc is missing path: %s", path)
return fmt.Errorf("replace operation does not apply: doc is missing path: %s: %w", path, ErrMissing)
}

_, ok := con.get(key)
if ok != nil {
return errors.Wrapf(ErrMissing, "replace operation does not apply: doc is missing key: %s", path)
return fmt.Errorf("replace operation does not apply: doc is missing key: %s: %w", path, ErrMissing)
}

err = con.set(key, op.value())
if err != nil {
return errors.Wrapf(err, "error in remove for path: '%s'", path)
return fmt.Errorf("error in remove for path: '%s': %w", path, err)
}

return nil
Expand All @@ -613,39 +612,39 @@ func (p Patch) replace(doc *container, op Operation) error {
func (p Patch) move(doc *container, op Operation) error {
from, err := op.From()
if err != nil {
return errors.Wrapf(err, "move operation failed to decode from")
return fmt.Errorf("move operation failed to decode from: %w", err)
}

con, key := findObject(doc, from)

if con == nil {
return errors.Wrapf(ErrMissing, "move operation does not apply: doc is missing from path: %s", from)
return fmt.Errorf("move operation does not apply: doc is missing from path: %s: %w", from, ErrMissing)
}

val, err := con.get(key)
if err != nil {
return errors.Wrapf(err, "error in move for path: '%s'", key)
return fmt.Errorf("error in move for path: '%s': %w", key, err)
}

err = con.remove(key)
if err != nil {
return errors.Wrapf(err, "error in move for path: '%s'", key)
return fmt.Errorf("error in move for path: '%s': %w", key, err)
}

path, err := op.Path()
if err != nil {
return errors.Wrapf(err, "move operation failed to decode path")
return fmt.Errorf("move operation failed to decode path: %w", err)
}

con, key = findObject(doc, path)

if con == nil {
return errors.Wrapf(ErrMissing, "move operation does not apply: doc is missing destination path: %s", path)
return fmt.Errorf("move operation does not apply: doc is missing destination path: %s: %w", path, ErrMissing)
}

err = con.add(key, val)
if err != nil {
return errors.Wrapf(err, "error in move for path: '%s'", path)
return fmt.Errorf("error in move for path: '%s': %w", path, err)
}

return nil
Expand All @@ -654,7 +653,7 @@ func (p Patch) move(doc *container, op Operation) error {
func (p Patch) test(doc *container, op Operation) error {
path, err := op.Path()
if err != nil {
return errors.Wrapf(err, "test operation failed to decode path")
return fmt.Errorf("test operation failed to decode path: %w", err)
}

if path == "" {
Expand All @@ -673,67 +672,67 @@ func (p Patch) test(doc *container, op Operation) error {
return nil
}

return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
return fmt.Errorf("testing value %s failed: %w", path, ErrTestFailed)
}

con, key := findObject(doc, path)

if con == nil {
return errors.Wrapf(ErrMissing, "test operation does not apply: is missing path: %s", path)
return fmt.Errorf("test operation does not apply: is missing path: %s: %w", path, ErrMissing)
}

val, err := con.get(key)
if err != nil {
return errors.Wrapf(err, "error in test for path: '%s'", path)
return fmt.Errorf("error in test for path: '%s': %w", path, err)
}

if val == nil {
if op.value() == nil || op.value().raw == nil {
return nil
}
return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
return fmt.Errorf("testing value %s failed: %w", path, ErrTestFailed)
} else if op.value() == nil {
return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
return fmt.Errorf("testing value %s failed: %w", path, ErrTestFailed)
}

if val.equal(op.value()) {
return nil
}

return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
return fmt.Errorf("testing value %s failed: %w", path, ErrTestFailed)
}

func (p Patch) copy(doc *container, op Operation, accumulatedCopySize *int64) error {
from, err := op.From()
if err != nil {
return errors.Wrapf(err, "copy operation failed to decode from")
return fmt.Errorf("copy operation failed to decode from: %w", err)
}

con, key := findObject(doc, from)

if con == nil {
return errors.Wrapf(ErrMissing, "copy operation does not apply: doc is missing from path: %s", from)
return fmt.Errorf("copy operation does not apply: doc is missing from path: %s: %w", from, ErrMissing)
}

val, err := con.get(key)
if err != nil {
return errors.Wrapf(err, "error in copy for from: '%s'", from)
return fmt.Errorf("error in copy for from: '%s': %w", from, err)
}

path, err := op.Path()
if err != nil {
return errors.Wrapf(ErrMissing, "copy operation failed to decode path")
return fmt.Errorf("copy operation failed to decode path: %w", ErrMissing)
}

con, key = findObject(doc, path)

if con == nil {
return errors.Wrapf(ErrMissing, "copy operation does not apply: doc is missing destination path: %s", path)
return fmt.Errorf("copy operation does not apply: doc is missing destination path: %s: %w", path, ErrMissing)
}

valCopy, sz, err := deepCopy(val)
if err != nil {
return errors.Wrapf(err, "error while performing deep copy")
return fmt.Errorf("error while performing deep copy: %w", err)
}

(*accumulatedCopySize) += int64(sz)
Expand All @@ -743,7 +742,7 @@ func (p Patch) copy(doc *container, op Operation, accumulatedCopySize *int64) er

err = con.add(key, valCopy)
if err != nil {
return errors.Wrapf(err, "error while adding value during copy")
return fmt.Errorf("error while adding value during copy: %w", err)
}

return nil
Expand Down
5 changes: 1 addition & 4 deletions v5/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,4 @@ module github.com/evanphx/json-patch/v5

go 1.18

require (
github.com/jessevdk/go-flags v1.4.0
github.com/pkg/errors v0.8.1
)
require github.com/jessevdk/go-flags v1.4.0
2 changes: 0 additions & 2 deletions v5/go.sum
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
Loading