...
1 package api
2
3 import (
4 "github.com/99designs/gqlgen/codegen/config"
5 "github.com/99designs/gqlgen/plugin"
6 )
7
8 type Option func(cfg *config.Config, plugins *[]plugin.Plugin)
9
10 func NoPlugins() Option {
11 return func(cfg *config.Config, plugins *[]plugin.Plugin) {
12 *plugins = nil
13 }
14 }
15
16 func AddPlugin(p plugin.Plugin) Option {
17 return func(cfg *config.Config, plugins *[]plugin.Plugin) {
18 *plugins = append(*plugins, p)
19 }
20 }
21
22
23 func PrependPlugin(p plugin.Plugin) Option {
24 return func(cfg *config.Config, plugins *[]plugin.Plugin) {
25 *plugins = append([]plugin.Plugin{p}, *plugins...)
26 }
27 }
28
29
30 func ReplacePlugin(p plugin.Plugin) Option {
31 return func(cfg *config.Config, plugins *[]plugin.Plugin) {
32 if plugins != nil {
33 found := false
34 ps := *plugins
35 for i, o := range ps {
36 if p.Name() == o.Name() {
37 ps[i] = p
38 found = true
39 }
40 }
41 if !found {
42 ps = append(ps, p)
43 }
44 *plugins = ps
45 }
46 }
47 }
48
View as plain text