utils

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2022 License: MIT Imports: 8 Imported by: 29

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ArrayLabel = "array"
View Source
var BinaryLabel = "binary"
View Source
var BooleanLabel = "boolean"
View Source
var IntegerLabel = "integer"
View Source
var NumberLabel = "number"
View Source
var ObjectLabel = "object"
View Source
var SchemaId = "https://quobix.com/api/vacuum"
View Source
var SchemaSource = "https://json-schema.org/draft/2020-12/schema"
View Source
var StringLabel = "string"

Functions

func AreValuesCorrectlyTyped added in v0.0.8

func AreValuesCorrectlyTyped(valType string, values interface{}) map[string]string

AreValuesCorrectlyTyped will look through an array of unknown values and check they match against the supplied type as a string. The return value is empty if everything is OK, or it contains failures in the form of a value as a key and a message as to why it's not valid

func BuildPath

func BuildPath(basePath string, segs []string) string

BuildPath will construct a JSONPath from a base and an array of strings.

func CheckEnumForDuplicates added in v0.0.8

func CheckEnumForDuplicates(seq []*yaml.Node) []*yaml.Node

CheckEnumForDuplicates will check an array of nodes to check if there are any duplicate values.

func ConvertCase added in v0.0.5

func ConvertCase(input string, convert Case) string

func ConvertComponentIdIntoFriendlyPathSearch

func ConvertComponentIdIntoFriendlyPathSearch(id string) (string, string)

func ConvertComponentIdIntoPath

func ConvertComponentIdIntoPath(id string) (string, string)

func ConvertInterfaceArrayToStringArray

func ConvertInterfaceArrayToStringArray(raw interface{}) []string

ConvertInterfaceArrayToStringArray will convert an unknown interface array type, into a string slice

func ConvertInterfaceIntoStringMap

func ConvertInterfaceIntoStringMap(context interface{}) map[string]string

ConvertInterfaceIntoStringMap will convert an unknown input into a string map.

func ConvertInterfaceToStringArray

func ConvertInterfaceToStringArray(raw interface{}) []string

ConvertInterfaceToStringArray will convert an unknown input map type into a string array/slice

func ConvertYAMLtoJSON

func ConvertYAMLtoJSON(yamlData []byte) ([]byte, error)

ConvertYAMLtoJSON will do exactly what you think it will. It will deserialize YAML into serialized JSON.

func ExtractValueFromInterfaceMap

func ExtractValueFromInterfaceMap(name string, raw interface{}) interface{}

ExtractValueFromInterfaceMap pulls out an unknown value from a map using a string key

func FindFirstKeyNode

func FindFirstKeyNode(key string, nodes []*yaml.Node, depth int) (keyNode *yaml.Node, valueNode *yaml.Node)

FindFirstKeyNode will locate the first key and value yaml.Node based on a key.

func FindKeyNode

func FindKeyNode(key string, nodes []*yaml.Node) (keyNode *yaml.Node, valueNode *yaml.Node)

FindKeyNode is a non-recursive search of a *yaml.Node Content for a child node with a key. Returns the key and value

func FindKeyNodeFull added in v0.0.5

func FindKeyNodeFull(key string, nodes []*yaml.Node) (keyNode *yaml.Node, labelNode *yaml.Node, valueNode *yaml.Node)

FindKeyNodeFull is an overloaded version of FindKeyNode. Thins version however returns keys, labels and values. generally different things are required from different node trees, so depending on what this function is looking at it will return different things.

func FindKeyNodeTop

func FindKeyNodeTop(key string, nodes []*yaml.Node) (keyNode *yaml.Node, valueNode *yaml.Node)

FindKeyNodeTop is a non-recursive search of top level nodes for a key, will not look at content. Returns the key and value

func FindLastChildNode

func FindLastChildNode(node *yaml.Node) *yaml.Node

func FindNodes

func FindNodes(yamlData []byte, jsonPath string) ([]*yaml.Node, error)

FindNodes will find a node based on JSONPath, it accepts raw yaml/json as input.

func FindNodesWithoutDeserializing

func FindNodesWithoutDeserializing(node *yaml.Node, jsonPath string) ([]*yaml.Node, error)

FindNodesWithoutDeserializing will find a node based on JSONPath, without deserializing from yaml/json

func FixContext

func FixContext(context string) string

FixContext will clean up a JSONpath string to be correctly traversable.

func IsHttpVerb

func IsHttpVerb(verb string) bool

IsHttpVerb will check if an operation is valid or not.

func IsJSON

func IsJSON(testString string) bool

IsJSON will tell you if a string is JSON or not.

func IsNodeArray

func IsNodeArray(node *yaml.Node) bool

IsNodeArray checks if a node is an array type

func IsNodeBoolValue

func IsNodeBoolValue(node *yaml.Node) bool

IsNodeBoolValue will check is a node is a bool

func IsNodeFloatValue

func IsNodeFloatValue(node *yaml.Node) bool

IsNodeFloatValue will check is a node is a float value.

func IsNodeIntValue

func IsNodeIntValue(node *yaml.Node) bool

IsNodeIntValue will check if a node is an int value

func IsNodeMap

func IsNodeMap(node *yaml.Node) bool

IsNodeMap checks if the node is a map type

func IsNodePolyMorphic

func IsNodePolyMorphic(node *yaml.Node) bool

IsNodePolyMorphic will return true if the node contains polymorphic keys.

func IsNodeRefValue added in v0.0.5

func IsNodeRefValue(node *yaml.Node) (bool, *yaml.Node, string)

func IsNodeStringValue

func IsNodeStringValue(node *yaml.Node) bool

IsNodeStringValue checks if a node is a string value

func IsYAML

func IsYAML(testString string) bool

IsYAML will tell you if a string is YAML or not.

func MakeTagReadable

func MakeTagReadable(node *yaml.Node) string

func RenderCodeSnippet

func RenderCodeSnippet(startNode *yaml.Node, specData []string, before, after int) string

Types

type Case added in v0.0.5

type Case int8
const (
	// OpenApi3 is used by all OpenAPI 3+ docs
	OpenApi3 = "openapi"

	// OpenApi2 is used by all OpenAPI 2 docs, formerly known as swagger.
	OpenApi2 = "swagger"

	// AsyncApi is used by akk AsyncAPI docs, all versions.
	AsyncApi = "asyncapi"

	PascalCase Case = iota
	CamelCase
	ScreamingSnakeCase
	SnakeCase
	KebabCase
	ScreamingKebabCase
	RegularCase
	UnknownCase
)

func DetectCase added in v0.0.5

func DetectCase(input string) Case

type ExtensionNode added in v0.0.5

type ExtensionNode struct {
	Key   *yaml.Node
	Value *yaml.Node
}

func FindExtensionNodes added in v0.0.5

func FindExtensionNodes(nodes []*yaml.Node) []*ExtensionNode

type KeyNodeResult

type KeyNodeResult struct {
	KeyNode   *yaml.Node
	ValueNode *yaml.Node
	Parent    *yaml.Node
	Path      []yaml.Node
}

KeyNodeResult is a result from a KeyNodeSearch performed by the FindAllKeyNodesWithPath

type KeyNodeSearch

type KeyNodeSearch struct {
	Key             string
	Ignore          []string
	Results         []*KeyNodeResult
	AllowExtensions bool
}

KeyNodeSearch keeps a track of everything we have found on our adventure down the trees.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL