mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-14 07:26:47 +00:00
* 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
40 lines
1.0 KiB
Go
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))
|
|
}
|