2023-12-31 18:04:28 +08:00
|
|
|
package id
|
|
|
|
|
|
|
|
import (
|
2024-04-16 15:11:23 +08:00
|
|
|
"strings"
|
|
|
|
|
2024-03-26 14:54:50 +08:00
|
|
|
"github.com/aceld/kis-flow/common"
|
2023-12-31 18:04:28 +08:00
|
|
|
"github.com/google/uuid"
|
|
|
|
)
|
|
|
|
|
2024-04-15 17:50:02 +08:00
|
|
|
// KisID generates a random instance ID.
|
|
|
|
// The format is "prefix1-[prefix2-][prefix3-]ID"
|
|
|
|
// Example: flow-1234567890
|
|
|
|
// Example: func-1234567890
|
|
|
|
// Example: conn-1234567890
|
|
|
|
// Example: func-1-1234567890
|
2023-12-31 18:04:28 +08:00
|
|
|
func KisID(prefix ...string) (kisId string) {
|
|
|
|
|
|
|
|
idStr := strings.Replace(uuid.New().String(), "-", "", -1)
|
|
|
|
kisId = formatKisID(idStr, prefix...)
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func formatKisID(idStr string, prefix ...string) string {
|
|
|
|
var kisId string
|
|
|
|
|
|
|
|
for _, fix := range prefix {
|
|
|
|
kisId += fix
|
2024-04-15 17:50:02 +08:00
|
|
|
kisId += common.KisIDJoinChar
|
2023-12-31 18:04:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
kisId += idStr
|
|
|
|
|
|
|
|
return kisId
|
|
|
|
}
|