Break utils package into subpackages.
This commit is contained in:
parent
06ecd73f67
commit
d7a5adb239
25 changed files with 276 additions and 318 deletions
|
|
@ -3,7 +3,7 @@ package template
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/go-jet/jet/v2/generator/metadata"
|
||||
"github.com/go-jet/jet/v2/internal/utils"
|
||||
"github.com/go-jet/jet/v2/internal/utils/dbidentifier"
|
||||
"github.com/google/uuid"
|
||||
"path"
|
||||
"reflect"
|
||||
|
|
@ -77,8 +77,8 @@ var DefaultViewModel = DefaultTableModel
|
|||
// DefaultTableModel is default table template implementation
|
||||
func DefaultTableModel(tableMetaData metadata.Table) TableModel {
|
||||
return TableModel{
|
||||
FileName: utils.ToGoFileName(tableMetaData.Name),
|
||||
TypeName: utils.ToGoIdentifier(tableMetaData.Name),
|
||||
FileName: dbidentifier.ToGoFileName(tableMetaData.Name),
|
||||
TypeName: dbidentifier.ToGoIdentifier(tableMetaData.Name),
|
||||
Field: DefaultTableModelField,
|
||||
}
|
||||
}
|
||||
|
|
@ -142,13 +142,13 @@ func (em EnumModel) UseTypeName(typeName string) EnumModel {
|
|||
|
||||
// DefaultEnumModel returns default implementation for EnumModel
|
||||
func DefaultEnumModel(enumMetaData metadata.Enum) EnumModel {
|
||||
typeName := utils.ToGoIdentifier(enumMetaData.Name)
|
||||
typeName := dbidentifier.ToGoIdentifier(enumMetaData.Name)
|
||||
|
||||
return EnumModel{
|
||||
FileName: utils.ToGoFileName(enumMetaData.Name),
|
||||
FileName: dbidentifier.ToGoFileName(enumMetaData.Name),
|
||||
TypeName: typeName,
|
||||
ValueName: func(value string) string {
|
||||
return typeName + "_" + utils.ToGoIdentifier(value)
|
||||
return typeName + "_" + dbidentifier.ToGoIdentifier(value)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
@ -169,7 +169,7 @@ func DefaultTableModelField(columnMetaData metadata.Column) TableModelField {
|
|||
}
|
||||
|
||||
return TableModelField{
|
||||
Name: utils.ToGoIdentifier(columnMetaData.Name),
|
||||
Name: dbidentifier.ToGoIdentifier(columnMetaData.Name),
|
||||
Type: getType(columnMetaData),
|
||||
Tags: tags,
|
||||
}
|
||||
|
|
@ -247,7 +247,7 @@ func getType(columnMetadata metadata.Column) Type {
|
|||
func getUserDefinedType(column metadata.Column) string {
|
||||
switch column.DataType.Kind {
|
||||
case metadata.EnumType:
|
||||
return utils.ToGoIdentifier(column.DataType.Name)
|
||||
return dbidentifier.ToGoIdentifier(column.DataType.Name)
|
||||
case metadata.UserDefinedType, metadata.ArrayType:
|
||||
return "string"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@ import (
|
|||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/go-jet/jet/v2/internal/utils/filesys"
|
||||
"path"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
"github.com/go-jet/jet/v2/generator/metadata"
|
||||
"github.com/go-jet/jet/v2/internal/jet"
|
||||
"github.com/go-jet/jet/v2/internal/utils"
|
||||
)
|
||||
|
||||
// ProcessSchema will process schema metadata and constructs go files using generator Template
|
||||
|
|
@ -24,7 +24,7 @@ func ProcessSchema(dirPath string, schemaMetaData metadata.Schema, generatorTemp
|
|||
|
||||
fmt.Println("Destination directory:", schemaPath)
|
||||
fmt.Println("Cleaning up destination directory...")
|
||||
err := utils.CleanUpGeneratedFiles(schemaPath)
|
||||
err := filesys.RemoveDir(schemaPath)
|
||||
if err != nil {
|
||||
return errors.New("failed to cleanup generated files")
|
||||
}
|
||||
|
|
@ -52,7 +52,7 @@ func processModel(dirPath string, schemaMetaData metadata.Schema, schemaTemplate
|
|||
|
||||
modelDirPath := path.Join(dirPath, modelTemplate.Path)
|
||||
|
||||
err := utils.EnsureDirPath(modelDirPath)
|
||||
err := filesys.EnsureDirPathExist(modelDirPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("destination dir path does not exist: %w", err)
|
||||
}
|
||||
|
|
@ -119,7 +119,7 @@ func processEnumSQLBuilder(dirPath string, dialect jet.Dialect, enumsMetaData []
|
|||
|
||||
enumSQLBuilderPath := path.Join(dirPath, enumTemplate.Path)
|
||||
|
||||
err := utils.EnsureDirPath(enumSQLBuilderPath)
|
||||
err := filesys.EnsureDirPathExist(enumSQLBuilderPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create enum sql builder directory - %s: %w", enumSQLBuilderPath, err)
|
||||
}
|
||||
|
|
@ -145,7 +145,7 @@ func processEnumSQLBuilder(dirPath string, dialect jet.Dialect, enumsMetaData []
|
|||
return fmt.Errorf("failed to generete enum type %s: %w", enumTemplate.FileName, err)
|
||||
}
|
||||
|
||||
err = utils.SaveGoFile(enumSQLBuilderPath, enumTemplate.FileName, text)
|
||||
err = filesys.FormatAndSaveGoFile(enumSQLBuilderPath, enumTemplate.FileName, text)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to format and save '%s' enum type : %w", enumTemplate.FileName, err)
|
||||
}
|
||||
|
|
@ -183,7 +183,7 @@ func processTableSQLBuilder(fileTypes, dirPath string,
|
|||
|
||||
tableSQLBuilderPath := path.Join(dirPath, tableSQLBuilder.Path)
|
||||
|
||||
err := utils.EnsureDirPath(tableSQLBuilderPath)
|
||||
err := filesys.EnsureDirPathExist(tableSQLBuilderPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create table sql builder directory - %s: %w", tableSQLBuilderPath, err)
|
||||
}
|
||||
|
|
@ -220,7 +220,7 @@ func processTableSQLBuilder(fileTypes, dirPath string,
|
|||
return fmt.Errorf("failed to generate table sql builder type %s: %w", tableSQLBuilder.TypeName, err)
|
||||
}
|
||||
|
||||
err = utils.SaveGoFile(tableSQLBuilderPath, tableSQLBuilder.FileName, text)
|
||||
err = filesys.FormatAndSaveGoFile(tableSQLBuilderPath, tableSQLBuilder.FileName, text)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to format and save generated sql builder type '%s': %w", tableSQLBuilder.FileName, err)
|
||||
}
|
||||
|
|
@ -256,7 +256,7 @@ func generateUseSchemaFunc(dirPath, fileTypes string, builders []TableSQLBuilder
|
|||
basePath := path.Join(dirPath, builders[0].Path)
|
||||
fileName := fileTypes + "_use_schema"
|
||||
|
||||
err = utils.SaveGoFile(basePath, fileName, text)
|
||||
err = filesys.FormatAndSaveGoFile(basePath, fileName, text)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to save %s file: %w", fileName, err)
|
||||
}
|
||||
|
|
@ -312,7 +312,7 @@ func processTableModels(fileTypes, modelDirPath string, tablesMetaData []metadat
|
|||
return fmt.Errorf("failed to generate model type '%s': %w", tableMetaData.Name, err)
|
||||
}
|
||||
|
||||
err = utils.SaveGoFile(modelDirPath, tableTemplate.FileName, text)
|
||||
err = filesys.FormatAndSaveGoFile(modelDirPath, tableTemplate.FileName, text)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to save '%s' model type: %w", tableTemplate.FileName, err)
|
||||
}
|
||||
|
|
@ -353,7 +353,7 @@ func processEnumModels(modelDir string, enumsMetaData []metadata.Enum, modelTemp
|
|||
return fmt.Errorf("failed to generate enum type '%s': %w", enumMetaData.Name, err)
|
||||
}
|
||||
|
||||
err = utils.SaveGoFile(modelDir, enumTemplate.FileName, text)
|
||||
err = filesys.FormatAndSaveGoFile(modelDir, enumTemplate.FileName, text)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to save '%s' enum type: %w", enumTemplate.FileName, err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package template
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/go-jet/jet/v2/generator/metadata"
|
||||
"github.com/go-jet/jet/v2/internal/utils"
|
||||
"github.com/go-jet/jet/v2/internal/utils/dbidentifier"
|
||||
"path"
|
||||
"strings"
|
||||
"unicode"
|
||||
|
|
@ -69,9 +69,9 @@ type ViewSQLBuilder = TableSQLBuilder
|
|||
func DefaultTableSQLBuilder(tableMetaData metadata.Table) TableSQLBuilder {
|
||||
return TableSQLBuilder{
|
||||
Path: "/table",
|
||||
FileName: utils.ToGoFileName(tableMetaData.Name),
|
||||
InstanceName: utils.ToGoIdentifier(tableMetaData.Name),
|
||||
TypeName: utils.ToGoIdentifier(tableMetaData.Name) + "Table",
|
||||
FileName: dbidentifier.ToGoFileName(tableMetaData.Name),
|
||||
InstanceName: dbidentifier.ToGoIdentifier(tableMetaData.Name),
|
||||
TypeName: dbidentifier.ToGoIdentifier(tableMetaData.Name) + "Table",
|
||||
Column: DefaultTableSQLBuilderColumn,
|
||||
}
|
||||
}
|
||||
|
|
@ -127,7 +127,7 @@ type TableSQLBuilderColumn struct {
|
|||
// DefaultTableSQLBuilderColumn returns default implementation of TableSQLBuilderColumn
|
||||
func DefaultTableSQLBuilderColumn(columnMetaData metadata.Column) TableSQLBuilderColumn {
|
||||
return TableSQLBuilderColumn{
|
||||
Name: utils.ToGoIdentifier(columnMetaData.Name),
|
||||
Name: dbidentifier.ToGoIdentifier(columnMetaData.Name),
|
||||
Type: getSqlBuilderColumnType(columnMetaData),
|
||||
}
|
||||
}
|
||||
|
|
@ -185,8 +185,8 @@ type EnumSQLBuilder struct {
|
|||
func DefaultEnumSQLBuilder(enumMetaData metadata.Enum) EnumSQLBuilder {
|
||||
return EnumSQLBuilder{
|
||||
Path: "/enum",
|
||||
FileName: utils.ToGoFileName(enumMetaData.Name),
|
||||
InstanceName: utils.ToGoIdentifier(enumMetaData.Name),
|
||||
FileName: dbidentifier.ToGoFileName(enumMetaData.Name),
|
||||
InstanceName: dbidentifier.ToGoIdentifier(enumMetaData.Name),
|
||||
ValueName: func(enumValue string) string {
|
||||
return defaultEnumValueName(enumMetaData.Name, enumValue)
|
||||
},
|
||||
|
|
@ -217,9 +217,9 @@ func (e EnumSQLBuilder) UseInstanceName(name string) EnumSQLBuilder {
|
|||
}
|
||||
|
||||
func defaultEnumValueName(enumName, enumValue string) string {
|
||||
enumValueName := utils.ToGoIdentifier(enumValue)
|
||||
enumValueName := dbidentifier.ToGoIdentifier(enumValue)
|
||||
if !unicode.IsLetter([]rune(enumValueName)[0]) {
|
||||
return utils.ToGoIdentifier(enumName) + enumValueName
|
||||
return dbidentifier.ToGoIdentifier(enumName) + enumValueName
|
||||
}
|
||||
|
||||
return enumValueName
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue