Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
08681756b6
|
|||
64772d0474 | |||
127764556e | |||
170f43d806 |
@@ -1,5 +1,5 @@
|
||||
package goext
|
||||
|
||||
const GoextVersion = "0.0.271"
|
||||
const GoextVersion = "0.0.273"
|
||||
|
||||
const GoextVersionTimestamp = "2023-09-26T14:32:45+0200"
|
||||
const GoextVersionTimestamp = "2023-09-27T14:15:59+0200"
|
||||
|
@@ -1,7 +1,10 @@
|
||||
package langext
|
||||
|
||||
import "runtime/debug"
|
||||
|
||||
type PanicWrappedErr struct {
|
||||
panic any
|
||||
Stack string
|
||||
}
|
||||
|
||||
func (p PanicWrappedErr) Error() string {
|
||||
@@ -15,7 +18,7 @@ func (p PanicWrappedErr) ReoveredObj() any {
|
||||
func RunPanicSafe(fn func()) (err error) {
|
||||
defer func() {
|
||||
if rec := recover(); rec != nil {
|
||||
err = PanicWrappedErr{panic: rec}
|
||||
err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -27,7 +30,7 @@ func RunPanicSafe(fn func()) (err error) {
|
||||
func RunPanicSafeR1(fn func() error) (err error) {
|
||||
defer func() {
|
||||
if rec := recover(); rec != nil {
|
||||
err = PanicWrappedErr{panic: rec}
|
||||
err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -38,7 +41,7 @@ func RunPanicSafeR2[T1 any](fn func() (T1, error)) (r1 T1, err error) {
|
||||
defer func() {
|
||||
if rec := recover(); rec != nil {
|
||||
r1 = *new(T1)
|
||||
err = PanicWrappedErr{panic: rec}
|
||||
err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -50,7 +53,7 @@ func RunPanicSafeR3[T1 any, T2 any](fn func() (T1, T2, error)) (r1 T1, r2 T2, er
|
||||
if rec := recover(); rec != nil {
|
||||
r1 = *new(T1)
|
||||
r2 = *new(T2)
|
||||
err = PanicWrappedErr{panic: rec}
|
||||
err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -63,7 +66,7 @@ func RunPanicSafeR4[T1 any, T2 any, T3 any](fn func() (T1, T2, T3, error)) (r1 T
|
||||
r1 = *new(T1)
|
||||
r2 = *new(T2)
|
||||
r3 = *new(T3)
|
||||
err = PanicWrappedErr{panic: rec}
|
||||
err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
|
||||
}
|
||||
}()
|
||||
|
||||
|
@@ -73,7 +73,7 @@ func (c *Coll[TData]) ReplaceOne(ctx context.Context, filterQuery bson.M, value
|
||||
}
|
||||
|
||||
func (c *Coll[TData]) FindOneAndReplace(ctx context.Context, filterQuery bson.M, value TData) (TData, error) {
|
||||
mongoRes := c.coll.FindOneAndUpdate(ctx, filterQuery, bson.M{"$set": value}, options.FindOneAndUpdate().SetReturnDocument(options.After))
|
||||
mongoRes := c.coll.FindOneAndReplace(ctx, filterQuery, value, options.FindOneAndReplace().SetReturnDocument(options.After))
|
||||
if err := mongoRes.Err(); err != nil {
|
||||
return *new(TData), exerr.Wrap(err, "mongo-query[find-one-and-update] failed").
|
||||
Str("collection", c.Name()).
|
||||
|
Reference in New Issue
Block a user