snapshot of https://github.com/cortezaproject/corteza.git (2024.9.x, 2026-09-18; blobs > 131072B omitted)
Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
This commit is contained in:
86
server/pkg/errors/meta.go
Normal file
86
server/pkg/errors/meta.go
Normal file
@@ -0,0 +1,86 @@
|
||||
package errors
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sort"
|
||||
|
||||
"github.com/spf13/cast"
|
||||
)
|
||||
|
||||
type (
|
||||
meta map[interface{}]interface{}
|
||||
)
|
||||
|
||||
// StringKeys returns max length of (string) keys and slice of all strings
|
||||
func (m meta) StringKeys() (int, []string) {
|
||||
var (
|
||||
l, ml int
|
||||
key string
|
||||
kk = make([]string, 0, len(m))
|
||||
)
|
||||
|
||||
// collecting keys so that we can sort them to ensure
|
||||
// stable order and find out max length of the key
|
||||
for k := range m {
|
||||
switch c := k.(type) {
|
||||
case string:
|
||||
key = c
|
||||
case fmt.Stringer:
|
||||
key = c.String()
|
||||
default:
|
||||
continue
|
||||
}
|
||||
|
||||
kk = append(kk, key)
|
||||
if l = len(key); l > ml {
|
||||
ml = l
|
||||
}
|
||||
}
|
||||
|
||||
sort.Strings(kk)
|
||||
return ml, kk
|
||||
}
|
||||
|
||||
func (m meta) AsString(key interface{}) string {
|
||||
if _, has := m[key]; has {
|
||||
if s, ok := m[key].(string); ok {
|
||||
return s
|
||||
}
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m meta) AsInt(key interface{}) int {
|
||||
if _, has := m[key]; has {
|
||||
if s, ok := m[key].(int); ok {
|
||||
return s
|
||||
}
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m meta) MarshalJSON() ([]byte, error) {
|
||||
o := make(map[string]interface{})
|
||||
_, kk := m.StringKeys()
|
||||
for _, k := range kk {
|
||||
o[k] = m[k]
|
||||
}
|
||||
|
||||
return json.Marshal(o)
|
||||
}
|
||||
|
||||
// returns string pairs (both key & value are strings=
|
||||
func (m meta) pairs() []string {
|
||||
out := make([]string, 0, len(m)*2)
|
||||
|
||||
for k := range m {
|
||||
if key, ok := k.(string); ok {
|
||||
out = append(out, key, cast.ToString(m[k]))
|
||||
}
|
||||
}
|
||||
|
||||
return out
|
||||
}
|
||||
Reference in New Issue
Block a user