SessionProviderOptionPayloadsFromConfig converts the merged workspace config into a stable, UI-ready list of visible provider options.
(cfg *aghconfig.Config)
| 1244 | // SessionProviderOptionPayloadsFromConfig converts the merged workspace config |
| 1245 | // into a stable, UI-ready list of visible provider options. |
| 1246 | func SessionProviderOptionPayloadsFromConfig(cfg *aghconfig.Config) []contract.SessionProviderOptionPayload { |
| 1247 | payloadsByName := make(map[string]contract.SessionProviderOptionPayload, len(aghconfig.BuiltinProviders())) |
| 1248 | for name := range aghconfig.BuiltinProviders() { |
| 1249 | payload, ok := sessionProviderOptionPayloadFromConfig(cfg, name) |
| 1250 | if !ok { |
| 1251 | continue |
| 1252 | } |
| 1253 | payloadsByName[payload.Name] = payload |
| 1254 | } |
| 1255 | if cfg != nil { |
| 1256 | for name := range cfg.Providers { |
| 1257 | payload, ok := sessionProviderOptionPayloadFromConfig(cfg, name) |
| 1258 | if !ok { |
| 1259 | continue |
| 1260 | } |
| 1261 | payloadsByName[payload.Name] = payload |
| 1262 | } |
| 1263 | } |
| 1264 | |
| 1265 | defaultProvider := "" |
| 1266 | if cfg != nil { |
| 1267 | defaultProvider = aghconfig.CanonicalProviderName(cfg.Defaults.Provider) |
| 1268 | } |
| 1269 | return sortSessionProviderOptionPayloads(payloadsByName, defaultProvider) |
| 1270 | } |
| 1271 | |
| 1272 | func sessionProviderOptionPayloadFromConfig( |
| 1273 | cfg *aghconfig.Config, |