aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-12-06 14:23:21 -0500
committerLibravatar vnugent <public@vaughnnugent.com>2023-12-06 14:23:21 -0500
commit977704eb059c4d59f53aa796fd7f982ce0a44884 (patch)
tree6e58dc72a7198ef525ff0b7f054112509933c10d
parent8bc404e5174b2835bd49f4f751467052e156e463 (diff)
package updates
-rw-r--r--lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj2
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj6
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs29
-rw-r--r--lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj2
4 files changed, 34 insertions, 5 deletions
diff --git a/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj b/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
index 6409083..2a5570c 100644
--- a/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
+++ b/lib/VNLib.Plugins.Extensions.Data/src/VNLib.Plugins.Extensions.Data.csproj
@@ -47,7 +47,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.24" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.25" />
</ItemGroup>
<ItemGroup>
diff --git a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj
index cbd4029..cfe469f 100644
--- a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj
+++ b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/VNLib.Plugins.Extensions.Loading.Sql.csproj
@@ -38,9 +38,9 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.24" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.24" />
- <PackageReference Include="MySqlConnector" Version="2.2.7" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.25" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.25" />
+ <PackageReference Include="MySqlConnector" Version="2.3.1" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="6.0.2" />
</ItemGroup>
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs b/lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs
index 06c3ee4..bbd6c10 100644
--- a/lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs
@@ -213,6 +213,35 @@ namespace VNLib.Plugins.Extensions.Loading
}
/// <summary>
+ /// Attempts to get a configuration property from the specified configuration scope
+ /// and invokes your callback function on the element if found to transform the
+ /// output value
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="config"></param>
+ /// <param name="property">The name of the configuration element to get</param>
+ /// <param name="getter">The function used to set the desired value from the config element</param>
+ /// <param name="value">The output value to set</param>
+ /// <returns>A value that indicates if the property was found</returns>
+ public static bool TryGetProperty<T>(this IConfigScope config, string property, Func<JsonElement, T> getter, out T? value)
+ {
+ //Check null
+ ArgumentNullException.ThrowIfNull(config, nameof(config));
+ ArgumentNullException.ThrowIfNull(property, nameof(property));
+ ArgumentNullException.ThrowIfNull(getter, nameof(getter));
+
+ //Get the property
+ if (config.TryGetValue(property, out JsonElement el))
+ {
+ //Safe to invoke callback function on the element and set the return value
+ value = getter(el);
+ return true;
+ }
+ value = default;
+ return false;
+ }
+
+ /// <summary>
/// Gets the configuration property name for the type
/// </summary>
/// <param name="type">The type to get the configuration name for</param>
diff --git a/lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj b/lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj
index 9f303ce..95d9be3 100644
--- a/lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj
+++ b/lib/VNLib.Plugins.Extensions.Validation/src/VNLib.Plugins.Extensions.Validation.csproj
@@ -46,7 +46,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="FluentValidation" Version="11.8.0" />
+ <PackageReference Include="FluentValidation" Version="11.8.1" />
</ItemGroup>
<ItemGroup>