stemplates

package
v0.1.7 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FuncMap = template.FuncMap{
	"camelToSnake":            CamelToSnake,
	"add":                     add,
	"parseTime":               parseTime,
	"parseInt":                parseInt,
	"randomEmail":             randomEmail,
	"randomUUID":              randomUUID,
	"randomID":                randomID,
	"randomUInt":              randomUInt,
	"randomFloat64":           randomFloat64,
	"randomFloat32":           randomFloat32,
	"randomInt32":             randomInt32,
	"randomInt64":             randomInt64,
	"randomString":            randomGenericString,
	"randomTime":              randomTime,
	"randomBool":              randomBool,
	"replaceString":           replaceString,
	"replaceStringCapitalize": replaceStringCapitalize,
	"formatSliceToString":     formatSliceToString,
	"toLowerCaseName":         ToLowerCaseName,
}
View Source
var TemplateFS embed.FS

Functions

func CamelToSnake

func CamelToSnake(s string) string

CamelToSnake converts CamelCase or PascalCase to snake_case

func CapitalizeFirstLetter

func CapitalizeFirstLetter(s string) string

CapitalizeFirstLetter capitalizes the first letter of the string.

func CommonCMD

func CommonCMD()

func CommonCMDInit

func CommonCMDInit()

func CommonModInit

func CommonModInit(project_module string)

func CommonProjectName

func CommonProjectName(projectName string, authAppName string, authAppType string)

CommonProjectName saves the project name into the project JSON file.

func GetProjectName

func GetProjectName() string

GetProjectName retrieves the project name from the project JSON file.

func InitProjectJSON

func InitProjectJSON()

InitProjectJSON initializes the project JSON file if not already present.

func LoadData

func LoadData(fileName string) error

LoadData loads data from a JSON configuration file.

func LoadTemplate

func LoadTemplate(name string) *template.Template

func ToLowerCaseName

func ToLowerCaseName(s string) string

CamelToSnake converts CamelCase or PascalCase to snake_case

func WriteTemplateToFile

func WriteTemplateToFile(filePath string, tmpl *template.Template, data Data)

func WriteTemplateToFileModel

func WriteTemplateToFileModel(filePath string, tmpl *template.Template, data Model)

func WriteTemplateToFileRelation

func WriteTemplateToFileRelation(filePath string, tmpl *template.Template, data Relationship)

func WriteTemplateToFileSetting

func WriteTemplateToFileSetting(filePath string, tmpl *template.Template, data ProjectSetting)

Types

type Data

type Data struct {
	ProjectName    string   `json:"project_name"`
	FrameName      string   `json:"frame_name"`
	AppName        string   `json:"app_name"`
	PackageAppName string   `json:"package_app_name"`
	BackTick       string   `json:"back_tick"`
	Models         []Model  `json:"models"`
	AppNames       []string `json:"app_names"`
	AuthAppName    string   `json:"auth_app_name"`
	AuthAppType    string   `json:"auth_app_Type"`
	Frame          string   `json:"frame"`
	CurrentAppName string   `json:"current_app_name"`
}

Data struct holds information about the project.

var RenderData Data

func (*Data) SetBackTick

func (d *Data) SetBackTick()

SetBackTick assigns a backtick to the Data struct.

type Field

type Field struct {
	NormalModelName  string `json:"normal_model_name"`
	ModelName        string `json:"model_name"`
	Name             string `json:"name"`
	LowerName        string `json:"lower_name"`
	Type             string `json:"type"`
	UpperType        string `json:"upper_type"`
	Annotation       string `json:"annotation"`
	MongoAnnotation  string `json:"mongo_annotation"`
	CurdFlag         string `json:"curd_flag"`
	Get              bool   `json:"get"`
	Post             bool   `json:"post"`
	Patch            bool   `json:"patch"`
	Put              bool   `json:"put"`
	OtM              bool   `json:"otm"`
	MtM              bool   `json:"mtm"`
	ProjectName      string `json:"project_name"`
	AppName          string `json:"app_name"`
	AuthAppName      string `json:"auth_app_name"`
	BackTick         string `json:"back_tick"`
	RandomFieldValue string `json:"random_field_value"`
}

Field represents a model field.

type Model

type Model struct {
	Name         string         `json:"name"`
	LowerName    string         `json:"lower_name"`
	RlnModel     []string       `json:"rln_model"`
	BackTick     string         `json:"back_tick"`
	Fields       []Field        `json:"fields"`
	ProjectName  string         `json:"project_name"`
	AppName      string         `json:"app_name"`
	AuthAppName  string         `json:"auth_app_name"`
	SearchFields []string       `json:"search_fields"`
	Relations    []Relationship `json:"relations"`
	AuthAppType  string         `json:"auth_app_type"`
	TableName    string         `json:"table_name"`
}

Model represents a data model.

type ProjectSetting

type ProjectSetting struct {
	ProjectName    string   `json:"project_name"`
	AppNames       []string `json:"app_names"`
	CurrentAppName string   `json:"current_app_name"`
	BackTick       string   `json:"back_tick"`
	AuthAppName    string   `json:"auth_app_name"`
	AuthAppType    string   `json:"auth_app_type"`
	Models         []Model  `json:"models"`
}

ProjectSetting contains project configuration.

var ProjectSettings ProjectSetting

func (*ProjectSetting) AppendAppName

func (p *ProjectSetting) AppendAppName(appName, authAppName string) error

AppendAppName appends a new app name to AppNames if not already present.

func (*ProjectSetting) Contains

func (p *ProjectSetting) Contains(str string) bool

Contains checks if a string is in the AppNames slice.

type Relationship

type Relationship struct {
	TableName       string  `json:"table_name"`
	AppName         string  `json:"app_name"`
	ParentName      string  `json:"parent_name"`
	LowerParentName string  `json:"lower_parent_name"`
	FieldName       string  `json:"field_name"`
	LowerFieldName  string  `json:"lower_field_name"`
	ParentFields    []Field `json:"parent_fields"`
	ChildFields     []Field `json:"child_fields"`
	MtM             bool    `json:"mtm"`
	OtM             bool    `json:"otm"`
	MtO             bool    `json:"mto"`
	BackTick        string  `json:"back_tick"`
	ProjectName     string  `json:"project_name"`
}

Relationship defines model relationships.

Jump to

Keyboard shortcuts

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