diff --git a/src/Falco/ConfigBuilder.fs b/src/Falco/ConfigBuilder.fs index ab7757e..a83a607 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 } + InMemory : Map + AddUserSecrets: bool} static member Empty = { AddEnvVars = false BasePath = Directory.GetCurrentDirectory() RequiredFiles = [] OptionalFiles = [] - InMemory = Map.empty } + InMemory = Map.empty + AddUserSecrets= false } /// Computation expression to allow for elegant IConfiguration construction. type ConfigBuilder (args : string[]) = @@ -51,6 +54,9 @@ type ConfigBuilder (args : string[]) = bldr.AddCommandLine(args) |> ignore + if conf.AddUserSecrets then + bldr.AddUserSecrets() |> ignore + bldr.Build() :> IConfiguration /// Sets the base path of the ConfigurationBuilder. @@ -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.