snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
test / Lint (push) Failing after 3s
test / Test with Go 1.26.8 (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-16 01:17:21 +05:00
commit b352a9a30d
472 changed files with 108375 additions and 0 deletions

30
internal/tools/json.go Normal file
View File

@@ -0,0 +1,30 @@
package tools
import "encoding/json"
// IsValidJSON checks if the given byte slice is valid JSON.
func IsValidJSON(data []byte) bool {
return json.Valid(data)
}
// IsValidJSONObject checks if the given byte slice is valid JSON and specifically a JSON object.
func IsValidJSONObject(data []byte) bool {
if !IsValidJSON(data) {
return false
}
// Find first non-whitespace character
start := 0
for start < len(data) && isWhitespace(data[start]) {
start++
}
// Find last non-whitespace character
end := len(data) - 1
for end >= start && isWhitespace(data[end]) {
end--
}
return start <= end && data[start] == '{' && data[end] == '}'
}
func isWhitespace(b byte) bool {
return b == ' ' || b == '\t' || b == '\n' || b == '\r'
}