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デフォルトのモデル生成ロジックを置き換えられる