gqlgen
コード生成
実装
github.com/99designs/gqlgen/api.Generate()
を呼び出している
plugin
インターフェース
api.Generate()
はYAMLから読み取った設定から必要なpluginを追加して呼び出すという実装になっている
例: 設定の
model
が存在したら
modelgen
を追加している:
https://github.com/99designs/gqlgen/blob/9796f91dba461051d70a9101c9113b99f7ee82df/api/generate.go#L23-L25
api.ReplacePlugin
を使うと既存のプラグインを置き換えることができる
プラグインは
Name() string
の返り値で識別される
たとえば
"modelgen"
を返す自前のプラグインを
api.ReplacePlugin()
に渡すとgqlgenデフォルトのモデル生成ロジックを置き換えられる