github.com/weplanx/server@v0.2.6-0.20240318110640-f7e75155779a/bootstrap/wire.go (about) 1 //go:build wireinject 2 // +build wireinject 3 4 package bootstrap 5 6 import ( 7 "github.com/google/wire" 8 "github.com/weplanx/server/api" 9 "github.com/weplanx/server/common" 10 "github.com/weplanx/server/openapi" 11 "github.com/weplanx/server/xapi" 12 ) 13 14 func NewAPI(values *common.Values) (*api.API, error) { 15 wire.Build( 16 wire.Struct(new(api.API), "*"), 17 wire.Struct(new(common.Inject), "*"), 18 UseMongoDB, 19 UseDatabase, 20 UseRedis, 21 UseNats, 22 UseJetStream, 23 UseKeyValue, 24 UseValues, 25 UseSessions, 26 UseRest, 27 UseCsrf, 28 UseCipher, 29 UseAPIPassport, 30 UseLocker, 31 UseCaptcha, 32 UseTransfer, 33 UseInflux, 34 UseHertz, 35 api.Provides, 36 ) 37 return &api.API{}, nil 38 } 39 40 func NewXAPI(values *common.Values) (*xapi.API, error) { 41 wire.Build( 42 wire.Struct(new(xapi.API), "*"), 43 wire.Struct(new(common.Inject), "*"), 44 UseMongoDB, 45 UseDatabase, 46 UseRedis, 47 UseNats, 48 UseJetStream, 49 UseKeyValue, 50 UseCipher, 51 UseLocker, 52 UseCaptcha, 53 UseTransfer, 54 UseHertz, 55 xapi.Provides, 56 ) 57 return &xapi.API{}, nil 58 } 59 60 func NewOpenAPI(values *common.Values) (*openapi.API, error) { 61 wire.Build( 62 wire.Struct(new(openapi.API), "*"), 63 wire.Struct(new(common.Inject), "*"), 64 UseMongoDB, 65 UseDatabase, 66 UseRedis, 67 UseNats, 68 UseJetStream, 69 UseKeyValue, 70 UseCipher, 71 UseLocker, 72 UseCaptcha, 73 UseTransfer, 74 UseHertz, 75 openapi.Provides, 76 ) 77 return &openapi.API{}, nil 78 }