Documentation ¶
Index ¶
- Constants
- Variables
- func ByteToString(b []byte) string
- func GenerateHMAC(salt, str string) string
- func GenerateSHA1(input []byte) string
- func GetFuncName(fn interface{}) string
- func GetRuntimeStackLine() string
- func IsExistInMap[T any, K comparable](m map[K]T, key K) bool
- func LoadAllFile(path, formatFile string) []byte
- func MaskingPasswordURL(stringURL string) string
- func MustParseEnv(target interface{})
- func ParseDurationExpression(t string) (duration, nextDuration time.Duration, err error)
- func ParseFromQueryParam(query URLQueryGetter, target interface{}) (err error)
- func ParseTimeToString(date time.Time, format string) (res string)
- func ParseToQueryParam(source interface{}) (s string)
- func PrintJSON(data interface{})
- func PtrToBool(ptr *bool) (b bool)
- func PtrToFloat(ptr *float64) (f float64)
- func PtrToFloat32(ptr *float32) (f float32)
- func PtrToInt(ptr *int) (i int)
- func PtrToString(ptr *string) (s string)
- func PtrToTime(ptr *time.Time) (t time.Time)
- func StreamAllBatch[T any, F FilterStreamer](ctx context.Context, totalData int, filter F, ...) error
- func StreamAllBatchDynamic[T any, F FilterStreamer](ctx context.Context, filter F, ...) error
- func StringGreen(str string) string
- func StringInSlice(str string, list []string) bool
- func StringToByte(s string) (b []byte)
- func StringYellow(str string) string
- func TimeRemoveNanosecond(t time.Time) time.Time
- func ToAsiaJakartaTime(t time.Time) time.Time
- func ToBoolPtr(b bool) *bool
- func ToBytes(i interface{}) (b []byte)
- func ToCamelCase(str string) string
- func ToDelimited(s string, delimiter uint8) string
- func ToFloat32Ptr(f float32) *float32
- func ToFloatPtr(f float64) *float64
- func ToInt(val interface{}) (i int)
- func ToIntPtr(i int) *int
- func ToKeyMapSlice[T any, K comparable](mp map[K]T) (list []K)
- func ToMap[T any, K comparable](list []T, keyGetter func(T) K) map[K]T
- func ToString(val interface{}) (str string)
- func ToStringPtr(str string) *string
- func ToTimePtr(t time.Time) *time.Time
- func ToUTC(t time.Time) time.Time
- func TransformSizeToByte(size uint64) string
- func UnwrapPtr[T any](t *T) (res T)
- func WrapPtr[T any](t T) *T
- type FilterStreamer
- type MultiError
- type TryCatch
- type URLQueryGetter
Constants ¶
const ( // TimeZoneAsia constanta TimeZoneAsia = "Asia/Jakarta" // TokenClaimKey const TokenClaimKey = "tokenClaim" // TimeFormatLogger const TimeFormatLogger = "2006/01/02 15:04:05" // V1 const V1 = "/v1" // V2 const V2 = "/v2" // Byte ... Byte uint64 = 1 // KByte ... KByte = Byte * 1024 // MByte ... MByte = KByte * 1024 // GByte ... GByte = MByte * 1024 // TByte ... TByte = GByte * 1024 // WORKDIR const for workdir environment WORKDIR = "WORKDIR" // RepositorySQL unit of work for sql repository RepositorySQL = "repositorySQL" // RepositoryMongo unit of work for mongodb repository RepositoryMongo = "repositoryMongo" // HeaderDisableTrace const HeaderDisableTrace = "X-Disable-Trace" // HeaderXForwardedFor const HeaderXForwardedFor = "X-Forwarded-For" // HeaderXRealIP const HeaderXRealIP = "X-Real-IP" // HeaderContentType const HeaderContentType = "Content-Type" // HeaderAuthorization const HeaderAuthorization = "Authorization" // HeaderMIMEApplicationJSON const HeaderMIMEApplicationJSON = "application/json" // HeaderMIMEApplicationXML const HeaderMIMEApplicationXML = "application/xml" // HeaderMIMEApplicationForm const HeaderMIMEApplicationForm = "application/x-www-form-urlencoded" // HeaderMIMEMultipartForm const HeaderMIMEMultipartForm = "multipart/form-data" // HeaderMIMEOctetStream const HeaderMIMEOctetStream = "application/octet-stream" // DateFormatMonday date format DateFormatMonday = "Monday" // DateFormatYYYYMM date format DateFormatYYYYMM = "2006-01" // DateFormatYYYYMMDD date format DateFormatYYYYMMDD = "2006-01-02" // DateFormatYYYYMMDDHHmmss date format DateFormatYYYYMMDDHHmmss = "2006-01-02 15:04:05" // DateFormatYYYYMMDDClean date format DateFormatYYYYMMDDClean = "20060102" // DateFormatHHmmss date format DateFormatHHmm = "15:04" // DateFormatDDMMYYYY date format DateFormatDDMMYYYY = "02-01-2006" )
const ( // OneDay const OneDay = 24 * time.Hour // OneWeek const OneWeek = 7 * OneDay // OneMonth const OneMonth = 30 * OneDay // OneYear const OneYear = 12 * OneMonth // Daily const Daily = "daily" // Weekly const Weekly = "weekly" // Monthly const Monthly = "monthly" // Yearly const Yearly = "yearly" )
Variables ¶
var ( // Green color Green = []byte{27, 91, 57, 55, 59, 52, 50, 109} // White color White = []byte{27, 91, 57, 48, 59, 52, 55, 109} // Yellow color Yellow = []byte{27, 91, 57, 48, 59, 52, 51, 109} // Red color Red = []byte{27, 91, 57, 55, 59, 52, 49, 109} // Blue color Blue = []byte{27, 91, 57, 55, 59, 52, 52, 109} // Magenta color Magenta = []byte{27, 91, 57, 55, 59, 52, 53, 109} // Cyan color Cyan = []byte{27, 91, 57, 55, 59, 52, 54, 109} // Reset color Reset = []byte{27, 91, 48, 109} // AsiaJakartaLocalTime location AsiaJakartaLocalTime *time.Location )
Functions ¶
func ByteToString ¶ added in v1.14.0
ByteToString helper with zero allocation
func GenerateHMAC ¶ added in v1.9.0
GenerateHMAC generate random string
func GenerateSHA1 ¶ added in v1.9.0
GenerateSHA1 generate SHA1
func GetRuntimeStackLine ¶ added in v1.10.4
func GetRuntimeStackLine() string
GetRuntimeStackLine helper
func IsExistInMap ¶ added in v1.16.2
func IsExistInMap[T any, K comparable](m map[K]T, key K) bool
IsExistInMap check key is exist in map
func MaskingPasswordURL ¶
MaskingPasswordURL for hide plain text password from given URL format
func MustParseEnv ¶
func MustParseEnv(target interface{})
MustParseEnv must parse env to struct, panic if env from target struct tag is not found
func ParseDurationExpression ¶ added in v1.13.0
ParseDurationExpression with input format HH:mm:ss
func ParseFromQueryParam ¶
func ParseFromQueryParam(query URLQueryGetter, target interface{}) (err error)
ParseFromQueryParam parse url query string to struct target (with multiple data type in struct field), target must in pointer
func ParseTimeToString ¶ added in v1.14.8
ParseTimeToString helper, return empty string if zero time
func ParseToQueryParam ¶
func ParseToQueryParam(source interface{}) (s string)
ParseToQueryParam parse struct data to query param
func PrintJSON ¶ added in v1.8.14
func PrintJSON(data interface{})
PrintJSON for show data in pretty JSON with stack trace
func PtrToFloat32 ¶ added in v1.10.5
PtrToFloat32 helper
func StreamAllBatch ¶ added in v1.14.11
func StreamAllBatch[T any, F FilterStreamer](ctx context.Context, totalData int, filter F, fetchAllFunc func(context.Context, F) ([]T, error), handleFunc func(idx int, data *T) error) error
StreamAllBatch helper func for stream data
func StreamAllBatchDynamic ¶ added in v1.15.9
func StreamAllBatchDynamic[T any, F FilterStreamer](ctx context.Context, filter F, fetchAllFunc func(context.Context, F) ([]T, error), handleFunc func(idx int, data *T) error) error
StreamAllBatchDynamic helper func for stream data with dynamic source changes
func StringInSlice ¶
StringInSlice function for checking whether string in slice str string searched string list []string slice
func StringToByte ¶ added in v1.14.0
StringToByte helper with zero allocation
func TimeRemoveNanosecond ¶
TimeRemoveNanosecond ...
func ToAsiaJakartaTime ¶
ToAsiaJakartaTime convert only time location to AsiaJakarta local time
func ToDelimited ¶ added in v1.9.0
ToDelimited helper, can use to snake_case or kebab-case
func ToKeyMapSlice ¶ added in v1.16.2
func ToKeyMapSlice[T any, K comparable](mp map[K]T) (list []K)
ToKeyMapSlice transform key of map to slice
func ToMap ¶ added in v1.16.2
func ToMap[T any, K comparable](list []T, keyGetter func(T) K) map[K]T
ToMap transform slice to map
func TransformSizeToByte ¶ added in v1.14.11
TransformSizeToByte helper
Types ¶
type FilterStreamer ¶ added in v1.14.11
FilterStreamer abstract interface
type MultiError ¶
type MultiError interface { Append(key string, err error) MultiError HasError() bool IsNil() bool Clear() ToMap() map[string]string Merge(MultiError) MultiError Error() string }
MultiError abstract interface
type URLQueryGetter ¶ added in v1.13.14
URLQueryGetter abstraction