diff --git a/extension.go b/extension.go index 9be9987..f201153 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.cfg.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.cfg.OgenGenOptions != nil { + opts = *ex.cfg.OgenGenOptions + } + generator, err := ogengen.NewGenerator(ex.spec, opts) if err != nil { return err }