@@ -4,40 +4,63 @@ import (
44	"context" 
55	"fmt" 
66
7+ 	"github.com/pubgo/funk/assert" 
78	"github.com/pubgo/funk/errors" 
9+ 	"github.com/pubgo/funk/errors/errinter" 
810	"github.com/pubgo/funk/log" 
11+ 	"github.com/rs/zerolog" 
912	"github.com/samber/lo" 
1013)
1114
1215func  RecoveryAndCheck (setter  * error , callbacks  ... func (err  error ) error ) {
1316	if  setter  ==  nil  {
14- 		errMust (fmt .Errorf ("setter is nil" ))
17+ 		assert . Must (fmt .Errorf ("errcheck:  setter is nil" ))
1518		return 
1619	}
1720
18- 	err  :=  errors .Parse (recover ())
19- 	gErr  :=  * setter 
20- 	if  err  ==  nil  &&  gErr  ==  nil  {
21- 		return 
21+ 	defer  func () {
22+ 		if  * setter  ==  nil  {
23+ 			return 
24+ 		}
25+ 
26+ 		logErr (nil , * setter )
27+ 	}()
28+ 
29+ 	err  :=  errinter .ParseError (recover ())
30+ 	if  err  !=  nil  {
31+ 		err  =  errors .WrapStack (err )
2232	}
2333
34+ 	gErr  :=  * setter 
2435	if  err  ==  nil  {
2536		err  =  gErr 
2637	}
2738
39+ 	if  err  ==  nil  {
40+ 		return 
41+ 	}
42+ 
2843	for  _ , fn  :=  range  callbacks  {
2944		err  =  fn (err )
3045		if  err  ==  nil  {
3146			return 
3247		}
3348	}
3449
35- 	* setter  =  errors . WrapCaller ( err ,  1 ) 
50+ 	* setter  =  err 
3651}
3752
3853func  Check (errSetter  * error , err  error , contexts  ... context.Context ) bool  {
54+ 	defer  func () {
55+ 		if  * errSetter  ==  nil  {
56+ 			return 
57+ 		}
58+ 
59+ 		logErr (lo .FirstOr (contexts , nil ), * errSetter )
60+ 	}()
61+ 
3962	if  errSetter  ==  nil  {
40- 		errMust (fmt .Errorf ("errSetter is nil" ))
63+ 		assert . Must (fmt .Errorf ("errcheck:  errSetter is nil" ))
4164		return  false 
4265	}
4366
@@ -51,7 +74,7 @@ func Check(errSetter *error, err error, contexts ...context.Context) bool {
5174	}
5275
5376	var  ctx  =  lo .FirstOr (contexts , context .Background ())
54- 	for  _ , fn  :=  range  GetCheckersFromCtx (ctx ) {
77+ 	for  _ , fn  :=  range  getCheckersFromCtx (ctx ) {
5578		err  =  fn (ctx , err )
5679		if  err  ==  nil  {
5780			return  false 
@@ -62,16 +85,6 @@ func Check(errSetter *error, err error, contexts ...context.Context) bool {
6285	return  true 
6386}
6487
65- func  Expect (err  error , format  string , args  ... any ) {
66- 	if  err  ==  nil  {
67- 		return 
68- 	}
69- 
70- 	err  =  errors .WrapCaller (err , 1 )
71- 	err  =  errors .Wrapf (err , format , args ... )
72- 	errMust (err )
73- }
74- 
7588func  Map (err  error , fn  func (err  error ) error ) error  {
7689	if  err  ==  nil  {
7790		return  nil 
@@ -80,28 +93,18 @@ func Map(err error, fn func(err error) error) error {
8093	return  errors .WrapCaller (fn (err ), 1 )
8194}
8295
83- func  Inspect (err  error , fn  func (err  error )) {
84- 	if  err  ==  nil  {
85- 		return 
86- 	}
87- 
88- 	fn (err )
89- }
90- 
91- func  InspectLog (err  error , fn  func (logger  * log.Event ), contexts  ... context.Context ) {
96+ func  LogCtx (ctx  context.Context , err  error , events  ... func (e  * zerolog.Event )) {
9297	if  err  ==  nil  {
9398		return 
9499	}
95100
96- 	fn ( log . Err ( err , contexts ... ) )
101+ 	logErr ( ctx ,  err , events ... )
97102}
98103
99- func  LogErr (err  error , contexts  ... context. Context ) {
104+ func  Log (err  error , events  ... func ( e   * zerolog. Event ) ) {
100105	if  err  ==  nil  {
101106		return 
102107	}
103108
104- 	log .Err (err , contexts ... ).
105- 		CallerSkipFrame (1 ).
106- 		Msg (err .Error ())
109+ 	logErr (context .Background (), err , events ... )
107110}
0 commit comments