gen

package
v0.9.3 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RAW_SKEL        = "raw_skel"
	GO_DATA_GEN     = "go_data_gen"
	GO_DATA_SKEL    = "go_data_skel"
	GO_LAMBDA_SKEL  = "go_lambda_skel"
	GO_LAMBDA_MOD   = "go_lambda_mod"
	TS_FRONTEND_GEN = "ts_frontend_gen"
	TF_API_GEN      = "tf_api_gen"
	TF_API_SKEL     = "tf_api_skel"
)

Variables

View Source
var Types = map[string]Type{
	RAW_SKEL: {
		Header:          ``,
		Extension:       "",
		Format:          nil,
		GenerateIfEmpty: false,
		Overwrite:       false,
		DirectoryPrefix: "",
		ExtraDataRender: nil,
	},
	GO_DATA_GEN: {
		Header: `package data
// Code generated by gql-rapid-gen DO NOT EDIT.
// This file is derivative of gql-rapid-gen templates.
// Template Copyright (c) 2023 under the MIT license per gql-rapid-gen/LICENSE.MD.
`,
		Extension:       ".gen.go",
		Format:          formatGo,
		GenerateIfEmpty: false,
		Overwrite:       true,
		DirectoryPrefix: "lib/data/",
		ExtraDataRender: goImports,
	},
	GO_DATA_SKEL: {
		Header: `package data
// Skeleton generated by gql-rapid-gen.
// This file is derivative of gql-rapid-gen templates.
// Template Copyright (c) 2023 under the MIT license per gql-rapid-gen/LICENSE.MD.
`,
		Extension:       ".go",
		Format:          formatGo,
		GenerateIfEmpty: true,
		Overwrite:       false,
		DirectoryPrefix: "lib/data/",
		ExtraDataRender: goImports,
	},
	GO_LAMBDA_SKEL: {
		Header: `package main
// Skeleton generated by gql-rapid-gen.
// This file is derivative of gql-rapid-gen templates.
// Template Copyright (c) 2023 under the MIT license per gql-rapid-gen/LICENSE.MD.
`,
		Extension:       ".go",
		Format:          formatGo,
		GenerateIfEmpty: true,
		Overwrite:       false,
		DirectoryPrefix: "backend/api/lambda/",
	},
	GO_LAMBDA_MOD: {
		Header:          "",
		Extension:       ".mod",
		Format:          nil,
		GenerateIfEmpty: false,
		Overwrite:       false,
		DirectoryPrefix: "backend/api/lambda/",
	},
	TS_FRONTEND_GEN: {
		Header: `
// Code generated by gql-rapid-gen DO NOT EDIT.
// This file is derivative of gql-rapid-gen templates.
// Template Copyright (c) 2023 under the MIT license per gql-rapid-gen/LICENSE.MD.
`,
		Extension:       ".gen.tsx",
		GenerateIfEmpty: false,
		Overwrite:       true,
		DirectoryPrefix: "frontend/gen/",
		ExtraDataRender: tsImports,
	},
	TF_API_GEN: {
		Header: `
// Code generated by gql-rapid-gen DO NOT EDIT.
// This file is derivative of gql-rapid-gen templates.
// Template Copyright (c) 2023 under the MIT license per gql-rapid-gen/LICENSE.MD.
`,
		Extension:       ".gen.tf",
		GenerateIfEmpty: false,
		Overwrite:       true,
		DirectoryPrefix: "backend/api/",
	},
	TF_API_SKEL: {
		Header: `
// Skeleton generated by gql-rapid-gen.
// This file is derivative of gql-rapid-gen templates.
// Template Copyright (c) 2023 under the MIT license per gql-rapid-gen/LICENSE.MD.
`,
		Extension:       ".tf",
		GenerateIfEmpty: true,
		Overwrite:       false,
		DirectoryPrefix: "backend/api/",
	},
}

Functions

func ExecuteSchema

func ExecuteSchema(list []Plugin, schema *parser.Schema, output *Output) error

ExecuteSchema runs a list of Plugin entities against a given Schema. It assumes they have already been qualified.

func ExecuteTemplate

func ExecuteTemplate(templateName string, data any) (output string, err error)

func ListPlugins

func ListPlugins() []string

ListPlugins returns the names of all plugins registered

func MustRegisterTemplate

func MustRegisterTemplate(plugin Plugin, name string, raw string)

MustRegisterTemplate manually registers a new template, if defined outside the normal file structure

func RegisterPlugin

func RegisterPlugin(name string, p Plugin)

RegisterPlugin adds a new plugin to the registry, validating it does not already exist

func WritePluginSkeleton added in v0.9.3

func WritePluginSkeleton(files fs.FS, output *Output) (err error)

func WriteSkeleton

func WriteSkeleton(outputDir string) (err error)

Types

type Output

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

func (*Output) AppendOrCreate

func (o *Output) AppendOrCreate(typ string, filename string, content string) (of *OutputFile, err error)

func (*Output) Create added in v0.9.3

func (o *Output) Create(typ string, filename string, content string) (of *OutputFile, err error)

func (*Output) EnsureHasFile

func (o *Output) EnsureHasFile(typ string, filename string) (of *OutputFile, err error)

func (*Output) FileNames added in v0.9.3

func (o *Output) FileNames() []string

func (*Output) GetFiles

func (o *Output) GetFiles() map[string]*OutputFile

func (*Output) HasFile

func (o *Output) HasFile(typ string, filename string) bool

func (*Output) Write

func (o *Output) Write(outputDir string) (err error)

type OutputFile

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

func CreateOutputFile

func CreateOutputFile(typ string) (ret *OutputFile, err error)

func (*OutputFile) Add

func (of *OutputFile) Add(text ...string)

func (*OutputFile) AddExtraData

func (of *OutputFile) AddExtraData(text ...string)

func (*OutputFile) Render

func (of *OutputFile) Render() (out string, err error)

func (*OutputFile) String

func (of *OutputFile) String() string

type Plugin

type Plugin interface {
	Name() string
	Order() int
	Tags() []string
	Qualify(schema *parser.Schema) bool
	Generate(schema *parser.Schema, output *Output) error
}

func QualifySchema

func QualifySchema(schema *parser.Schema) (ret []Plugin)

QualifySchema runs all registered Plugin entities against a given Schema and returns those that qualify

type Type

type Type struct {
	Header          string
	Extension       string
	DirectoryPrefix string
	Format          func(string) (string, error)
	ExtraDataRender func(file *OutputFile) error
	GenerateIfEmpty bool
	Overwrite       bool
}

Jump to

Keyboard shortcuts

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