Очень много разных изменений

This commit is contained in:
2025-03-28 16:44:31 +04:00
parent d82df0729b
commit 8cd5214e4c
26 changed files with 911 additions and 569 deletions
@@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
namespace Pf2eDataScrapper.SchemaBuilder
{
internal class TypeResolver
{
public JTokenType TokenType(JToken? value)
{
if (value is null || value.Type is JTokenType.Null or JTokenType.Undefined or JTokenType.None)
{
return JTokenType.Null;
}
return value.Type;
}
public virtual AbstractSchemaType Resolve(SchemaNode parent, JToken? value)
{
var type = TokenType(value);
if (type == JTokenType.Null)
{
throw new Exception("Value is null, cannot determine type");
}
return type switch
{
JTokenType.Array => new ArraySchemaType(parent),
JTokenType.Object => new ObjectSchemaType(parent),
_ => new StaticSchemaType(parent, type)
};
}
}
}