dsp

package module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 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

This section is empty.

Functions

This section is empty.

Types

type DirectiveDef

type DirectiveDef struct {
	Name      string
	Arguments []string
}

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) 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