Files
gocryptotrader/gctscript/modules/gct/errors.go
Adrian Gallagher 4651af5767 modernise: Run new gopls modernise tool against the codebase and fix minor issues (#1826)
* modernise: Run new gopls modernise tool against codebase

* Address shazbert's nits

* apichecker, gctcli: Simplify HTML scraping functions and improve depth limit handling

* refactor: Create minSyncInterval const and update order book limit handling for binance and binanceUS

* refactor: Various slice usage improvements and rename TODO

* tranches: Revert deleteByID changes due to performance decrease

Shazbert was a F1 driver in a past lifetime 🏎️

* tranches: Simply retrieve copy

Thanks to shazbert

* documentation: Sort contributors list by contributions

* tranches: Remove deadcode in deleteByID
2025-03-21 09:17:10 +11:00

40 lines
1.0 KiB
Go

package gct
import (
"errors"
"fmt"
objects "github.com/d5/tengo/v2"
"github.com/thrasher-corp/gocryptotrader/common"
)
const standardFormatting = "%s"
var (
errFormatStringIsEmpty = errors.New("format string is empty")
errNoArguments = errors.New("no arguments for error response")
)
// errorResponsef is a helper function to apply error details to a return object
// for better script side error handling
func errorResponsef(format string, a ...any) (objects.Object, error) {
if format == "" {
return nil, fmt.Errorf("cannot generate tengo error object %w", errFormatStringIsEmpty)
}
if len(a) == 0 {
return nil, fmt.Errorf("cannot generate tengo error object %w", errNoArguments)
}
return &objects.Error{
Value: &objects.String{Value: fmt.Sprintf(format, a...)},
}, nil
}
func constructRuntimeError(argPosition int, funcName, expectedType string, unexpectedData any) error {
return fmt.Errorf("function [%s] argument position [%d] - %w",
funcName,
argPosition,
common.GetTypeAssertError(expectedType, unexpectedData))
}