Appearance
自动生成代码原理
在最外层目录上执行
npm run codegen或者nr codegen命令时,会调用codegen/src/codegen.tscodegen工程即为自动生成代码的工程,它会根据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等等
- 注意所有的外键关联