dsp

package module
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2020 License: MIT Imports: 9 Imported by: 1

README

dgraph-parser

Build Status Go Report Card go.dev reference

Package in Go for parsing native DGraph schema definitions (so not GraphQL).

usage

import (
    dsp "github.com/emicklei/dgraph-parser"
)

example

data, err := ioutil.ReadFile("dgraph.schema")
if err != nil {
	log.Fatal(err)
}
parser := dsp.NewParser(bytes.NewReader(data))
schema, err := parser.Parse()
if err != nil {
	log.Fatal(err)
}

© 2020, ernestmicklei.com. MIT License. Contributions welcome.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ValidDirectives = []string{
	"reverse",
	"index",
	"count",
	"upsert",
	"noconflict",
	"lang",
}
View Source
var ValidTypenames = []string{
	"default",
	"binary",
	"int",
	"float",
	"bool",
	"datetime",
	"geo",
	"uid",
	"string",
	"password",
}

https://github.com/dgraph-io/dgraph/blob/master/types/scalar_types.go

Functions

This section is empty.

Types

type DirectiveDef

type DirectiveDef struct {
	Name      string
	Arguments []string
}

func (*DirectiveDef) Validate added in v0.2.0

func (dd *DirectiveDef) Validate() error

type Parser

type Parser struct {
	// contains filtered or unexported fields
}

Parser represents a parser.

func NewParser

func NewParser(r io.Reader) *Parser

NewParser returns a new instance of Parser.

func (*Parser) Filename

func (p *Parser) Filename(f string)

Filename is for reporting. Optional.

func (*Parser) Parse

func (p *Parser) Parse() (*Schema, error)

Parse parses a schema definition. May return a parse or scanner error.

type PredicateDef

type PredicateDef struct {
	Name     string
	Typename string
	IsArray  bool

	Directives []*DirectiveDef
	// contains filtered or unexported fields
}

func (*PredicateDef) Validate added in v0.2.0

func (pd *PredicateDef) Validate() error

func (*PredicateDef) WriteOn

func (pd *PredicateDef) WriteOn(w io.Writer)

type Schema

type Schema struct {
	Filename   string
	Predicates []*PredicateDef
	Types      []*TypeDef
}

func (*Schema) FindPredicate

func (s *Schema) FindPredicate(name string) *PredicateDef

FindPredicate searches in all predicates and types for a definition. Return nil if not found.

func (*Schema) String

func (s *Schema) String() string

String is for debug

type TypeDef

type TypeDef struct {
	Name       string
	Predicates []*PredicateDef
}

func (*TypeDef) WriteOn

func (td *TypeDef) WriteOn(w io.Writer)

Jump to

Keyboard shortcuts

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