diff --git a/src/Falco/ConfigBuilder.fs b/src/Falco/ConfigBuilder.fs index ab7757e3..9411d863 100644 --- a/src/Falco/ConfigBuilder.fs +++ b/src/Falco/ConfigBuilder.fs @@ -8,19 +8,22 @@ type ConfigFile = | XmlFile of path : string | JsonFile of path : string + type ConfigBuilderSpec = - { AddEnvVars : bool - BasePath : string - RequiredFiles : ConfigFile list - OptionalFiles : ConfigFile list - InMemory : Map } + { AddEnvVars : bool + BasePath : string + RequiredFiles : ConfigFile list + OptionalFiles : ConfigFile list + InMemory : Map + AddUserSecrets : bool} static member Empty = - { AddEnvVars = false - BasePath = Directory.GetCurrentDirectory() - RequiredFiles = [] - OptionalFiles = [] - InMemory = Map.empty } + { AddEnvVars = false + BasePath = Directory.GetCurrentDirectory() + RequiredFiles = [] + OptionalFiles = [] + InMemory = Map.empty + AddUserSecrets = false } /// Computation expression to allow for elegant IConfiguration construction. type ConfigBuilder (args : string[]) = @@ -46,6 +49,9 @@ type ConfigBuilder (args : string[]) = if conf.InMemory.Keys.Count > 0 then bldr.AddInMemoryCollection(conf.InMemory) |> ignore + if conf.AddUserSecrets then + bldr.AddUserSecrets() |> ignore + if conf.AddEnvVars then bldr.AddEnvironmentVariables() |> ignore @@ -101,6 +107,11 @@ type ConfigBuilder (args : string[]) = member _.AddOptionalJsonFile (conf : ConfigBuilderSpec, filePath : string) = { conf with OptionalFiles = (JsonFile filePath) :: conf.OptionalFiles } + ///Adds optional user secrets to the ConfigurationBuilder. + [] + member _.AddOptionalUserSecrets (conf : ConfigBuilderSpec) = + { conf with AddUserSecrets = true } + [] module ConfigurationBuilder = /// Computation expression to allow for elegant IConfiguration construction.