From 439e664a36d198d6aca21fab0feb8a484bce55a9 Mon Sep 17 00:00:00 2001 From: Akkuman Date: Mon, 18 Mar 2024 13:47:00 +0800 Subject: [PATCH 1/2] feat: support custom ogen.gen.Options --- extension.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/extension.go b/extension.go index 9be9987..f182e9f 100644 --- a/extension.go +++ b/extension.go @@ -21,6 +21,7 @@ type ( Target string // The Views created by entoas. Views map[string]*entoas.View + OgenGenOptions ogengen.Options } // Extension implements entc.Extension interface providing integration with ogen. Extension struct { @@ -66,6 +67,13 @@ func Templates(ts ...*gen.Template) ExtensionOption { } } +func OgenGenOptions(opts ogengen.Options) ExtensionOption { + return func(ex *Extension) error { + ex.Config.OgenGenOptions = opts + return nil + } +} + // Hooks of the extension. func (ex Extension) Hooks() []gen.Hook { return []gen.Hook{ @@ -109,7 +117,11 @@ func (ex Extension) ogen(next gen.Generator) gen.Generator { return err } // Run the ogen code generator. - generator, err := ogengen.NewGenerator(ex.spec, ogengen.Options{}) + opts := ogengen.Options{} + if ex.Config.OgenGenOptions != opts { + opts = ex.Config.OgenGenOptions + } + generator, err := ogengen.NewGenerator(ex.spec, opts) if err != nil { return err } From f45a97ef0a66aa76a5a4256c9944a7e2c742b6d8 Mon Sep 17 00:00:00 2001 From: Akkuman Date: Mon, 18 Mar 2024 14:03:29 +0800 Subject: [PATCH 2/2] fix: Fixed usage of ogen.Options --- extension.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extension.go b/extension.go index f182e9f..f201153 100644 --- a/extension.go +++ b/extension.go @@ -21,7 +21,7 @@ type ( Target string // The Views created by entoas. Views map[string]*entoas.View - OgenGenOptions ogengen.Options + OgenGenOptions *ogengen.Options } // Extension implements entc.Extension interface providing integration with ogen. Extension struct { @@ -69,7 +69,7 @@ func Templates(ts ...*gen.Template) ExtensionOption { func OgenGenOptions(opts ogengen.Options) ExtensionOption { return func(ex *Extension) error { - ex.Config.OgenGenOptions = opts + ex.cfg.OgenGenOptions = &opts return nil } } @@ -118,8 +118,8 @@ func (ex Extension) ogen(next gen.Generator) gen.Generator { } // Run the ogen code generator. opts := ogengen.Options{} - if ex.Config.OgenGenOptions != opts { - opts = ex.Config.OgenGenOptions + if ex.cfg.OgenGenOptions != nil { + opts = *ex.cfg.OgenGenOptions } generator, err := ogengen.NewGenerator(ex.spec, opts) if err != nil {