Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct { data.ConfigData // TablePaths is a list of output targets used to render table data. // // The filename template may reference the values .Schema and .Table, // containing the name of the current schema and table being rendered. For // example, "{{.Schema}}/{{.Table}}/{{.Table}}.go" would render the // "public.users" table to ./public/users/users.go. TablePaths []OutputTarget // SchemaPaths is a list of output targets used to render schema data. // // The filename template may reference the value .Schema, containing the // name of the current schema being rendered. For example, // "schemas/{{.Schema}}/{{.Schema}}.go" would render the "public" schema to // ./schemas/public/public.go SchemaPaths []OutputTarget // EnumPaths is a list of output targets used to render enum data. // // The filename template may reference the values .Schema and .Enum, // containing the name of the current schema and Enum being rendered. For // example, "gnorm/{{.Schema}}/enums/{{.Enum}}.go" would render the // "public.book_type" enum to ./gnorm/public/enums/users.go. EnumPaths []OutputTarget // NameConversion defines how the DBName of tables, schemas, and enums are // converted into their Name value. This is a template that may use all the // regular functions. The "." value is the DB name of the item. Thus, to // make an item's Name the same as its DBName, you'd use a template of // "{{.}}". To make the Name the PascalCase version of DBName, you'd use // "{{pascal .}}". NameConversion *template.Template // Driver holds a reference to the current database driver that was // registered for the DBType and can connect using ConnStr. Driver database.Driver // Params contains any data you may want to pass to your templates. This is // a good way to make templates reusable with different configuration values // for different situations. The values in this field will be available in // the .Params value for all templates. Params map[string]interface{} // TemplateEngine, if specified, describes a command line tool to run to // render your templates, allowing you to use your preferred templating // engine. If not specified, go's text/template will be used to render. TemplateEngine struct { // CommandLine is the command to run to render the template. You may // pass the following variables to the command line - {{.Data}} the name // of a .json file containing the gnorm data serialized into json, // {{.Template}} - the name of the template file being rendered, // {{.Output}} the target file where output should be written. // text/template. CommandLine []*template.Template // If true, the json data will be sent via stdin to the rendering tool. UseStdin bool // If true, the output of the tool will be written to the target file. UseStdout bool } }
Config holds the schema that is expected to exist in the gnorm.toml file.
type OutputTarget ¶
type OutputTarget struct { Filename *template.Template Contents *template.Template ContentsPath string }
OutputTarget contains a template that generates a filename to write to, and a template that generates the contents for that file. If an external template engine is used, Contents will be nil, and the template at ContentsPath should be used.
type PreviewFormat ¶
type PreviewFormat int
PreviewFormat defines the types of output that Preview can return.
const ( // PreviewTabular shows the data in textual tables. PreviewTabular PreviewFormat = iota // PreviewYAML shows the data in YAML. PreviewYAML // PreviewJSON shows the data in JSON. PreviewJSON // PreviewTypes just prints out the column types used by the DB. PreviewTypes )
Click to show internal directories.
Click to hide internal directories.