-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.codegen.cfg.yaml
202 lines (172 loc) · 7.45 KB
/
example.codegen.cfg.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
protoc-path: "<protoc的绝对路径>"
protogen-go-path: "<protoc-gen-go的绝对路径>"
# 生成的代码的目录,即 protoc 执行的路径,实际生成的代码将会放在 <output-path>/<go-package> 下
# 如果不指定,默认规则为 <proto-file-path>/../<go-package>
output-path: "<生成的代码的目录>"
go-module-prefix: "<go module的前缀,在生成时会拼接proto中的 go-package 字段当做包名>"
# 不在 指定 proto 文件所在目录的其它被引用的包路径
# 支持绝对路径、相对生成路径 (相对于 output-path)
proto-files:
- "./lrpc/"
- "~/proto/"
# 工具语言,默认会按照以下顺序获取当前工具使用的语言
# 配置文件
# 环境变量 LANG
# 系统默认语言
# 英文
language: "en"
# 国际化相关配置
i18n:
# 是否开启生成 枚举
generate-const: false
# 国际化语言,如果存在则使用此数据
languages:
- en
- zh
- de
- de
- ja
- ko
- it
- ru
# 是否翻译全部支持的语言,如果为 true 则 i18n.languages 字段失效
all-languages: true
style:
# 命名风格,支持以下格式
# snake
# camel
# pascal
# kebab
path: "<rpc 请求路径命名风格,默认为 rpc name>"
# state 相关的配置
state:
# 是否生成配置相关的代码
config: true
# 是否开启数据库相关的数据库生成
table: true
# 是否开启缓存相关生成
cache: true
# 是否开启多语言相关联生成(生成仅包含state 初始化等内容,不包含多语言的自动翻译,如需自动翻译请使用 codegen i t 查看详情)
i18n: true
# 自定义模版文件,要求 .gtpl 格式
template:
# .editorconfig 模板文件路径,用于 IDE 的默认格式化
editorconfig: "<.editorconfig> 文件路径,如果不存在则使用默认"
# orm.go 模板文件路径,用于 gorm 的相关数据生成
orm: "<orm.go> 模板文件路径,如果不存在则是使用默认"
# table-name.go 模板文件路径,用于 gorm 的相关表名
table-name: "<table-name.go> 模板文件路径,如果不存在则是使用默认"
# table-field.go 模板文件路径,用于 gorm 的相关字段名,用于数据库操作时字段填写
table-field: "<table-field.go> 模板文件路径,如果不存在则是使用默认"
# .proto 文件相关的模板文件
proto:
# rpc 服务的模板文件路径
rpc: "proto.service 的模板文件路径"
# rpc 相关的
action:
# key → action value → 模版文件路径
add:
name: "rpc 名字的生成模板"
req: "message.request 生成模板"
resp: "messsage.response 生成模板"
set:
name: "rpc 名字的生成模板"
req: "message.request 生成模板"
resp: "messsage.response 生成模板"
update:
name: "rpc 名字的生成模板"
req: "message.request 生成模板"
resp: "messsage.response 生成模板"
del:
name: "rpc 名字的生成模板"
req: "message.request 生成模板"
resp: "messsage.response 生成模板"
# 如果 key 为 list,会触发筛选项的生辰
list:
name: "rpc 名字的生成模板"
req: "message.request 生成模板"
resp: "messsage.response 生成模板"
impl:
# impl.go 模板文件路径
impl: "<impl.go> 的模板文件路径"
# rpc请求路径模板文件路径
path: "<rpc-path.go> 的模板文件路径"
# 路由相关的配置
route: "<rpc-route.go> 的模板文件路径"
# 客户模板文件
client: "<client.go> 的模板文件"
# 调用函数的模板
client_call: "调用函数的模板文件"
# rpc 相关的
action:
# key → action value → 模版文件路径
add: "创建数据的模板路径"
set: "修改数据的模板路径"
update: "更新数据的模板路径"
del: "删除数据的模板路径"
list: "列表数据的模板路径"
"": "默认的模版路径"
# 入口文件
main: "<main.go> 模板文件路径"
state:
# state/table.go 模板文件路径
table: "<state/table.go> 模板文件路径,如果不存在则是使用默认"
# state/conf.go 模板文件路径
conf: "<state/conf.go >模板文件路径,如果不存在则是使用默认"
# state/cache.go 模板文件路径
cache: "<state/cache.go> 模板文件路径,如果不存在则是使用默认"
# state/state.go 模板文件路径
state: "<state/state.go> 模板文件路径,如果不存在则是使用默认"
# state/i18n.go 模板文件路径
i18n: "<state/i18n.go> 模板文件路径,如果不存在则是使用默认"
# .goreleaser.yaml 模板文件
goreleaser: "<.goreleaser.yaml> 模板文件路径,如果不存在则使用默认"
# Makefile 模板文件
makefile: "<Makefile> 模板文件路径,如果不存在则使用默认"
# .golangci.yml 模板文件
golangci: "<.golangci.yml> 模板文件路径"
# .gitignore 模板文件
gitignore: "<.gitignore> 模板文件路径"
#.dockerignore 模板文件
dockerignore: "<.dockerignore> 模板文件路径"
# i18n 枚举生成模板文件
i18n-const: "i18n 枚举生成模板文件路径"
# 默认的标签,会追加到原始标签中,key 为标签名, value.key 为字段名, value.value 为标签值
default-tag:
gorm:
id: "column:id;primaryKey;autoIncrement;not null"
created-at: "column:created_at;<-:create;autoCreateTime;not null"
updated-at: "column:updated_at;<-;autoUpdateTime;not null"
deleted-at: "column:deleted_at;autoDeleteTime"
name: "type:varchar(255);not null"
username: "type:varchar(255);not null"
email: "type:varchar(255);not null"
validate:
name: "required,max=200,min=2"
username: "required,max=100"
email: "required,email"
# 数据表相关的配置
tables:
# 是否关闭,默认为为 false,如果单独使用命令,则不会生效
disable: false
# 是否关闭自动生成的 gorm tag,默认为 false
# 关闭自动生成 id 相关的gorm tag,默认为 false
disable-field-id: false
# 关闭自动生成 created-at 的gorm tag,默认为 false
disable-field-created-at: false
# 关闭自动生成 updated-at 的gorm tag,默认为 false
disable-field-updated-at: false
# 关闭自动生成 deleted-at 的gorm tag,默认为 false
disable-field-deleted-at: false
# 关闭自动生成 column 的gorm tag,默认为 false
disable-gorm-tag-column: false
# 关闭关于错误:数据未找到的指定错误生成
disable-error-not_found: false
# 关闭关于错误:唯一键冲突的指定错误生成
disable-error-duplicate_key: false
# go.mod 相关配置
go-mod:
# 对 go.mod 相关 api 请求时用的代理地址,如果不填则使用系统配置的第一个
goproxy: "https://proxy.golang.org"
# 增强模式,针对 go.mod 更新时,由于缓存导致 mod 强制版本更新并没有更新到最新版的问题
increase: true