Appearance
自动生成代码原理
在最外层目录上执行
npm run codegen
或者nr codegen
命令时,会调用codegen/src/codegen.ts
codegen
工程即为自动生成代码的工程,它会根据codegen/src/template/
目录中的模板文件
deno/.env.dev
里面配置的数据链接去查询表的元数据
sql
select
t.*
from information_schema.COLUMNS t
where
t.table_schema = (select database())
order by t.ORDINAL_POSITION
- 再结合
codegen/tables/[模块名]/[模块名].ts
文件中的配置信息, (可参考基础模块
codegen/tables/base/base.ts
) - 生成对应的代码文件到
codegen/__out__/
目录下
随后, 自动执行
git diff
命令生成__test__.diff
临时文件, 如果生成的时候模板报错, 则会把编译后的js源码写入文件error.js
临时文件中自动执行
git apply __test__.diff
命令,将__test__.diff
文件中的内容应用到当前工程的各个目录下最后, 自动执行
npm run gqlGen
命令, 将根据所有graphql
文件生成对应的graphql
类型文件type.ts
到后端, 前端的类型- 注意所有的外键关联
id
都不再是String
类型, 而是对应的ID类型, 例如UsrId
,RoleId
等等
- 注意所有的外键关联