public ITypeBuildingContext ResolveType(string initialUnitPath, Type type, ITypeScriptUnitFactory unitFactory) { if (InternalApiTypeBuildingContext.Accept(type)) { var targetUnit = unitFactory.GetOrCreateTypeUnit(initialUnitPath); return(new InternalApiTypeBuildingContext(targetUnit, type)); } if (type == typeof(Guid)) { return(TypeBuilding.RedirectToType("Guid", @".\DataTypes\Guid", typeof(Guid))); } if (type == typeof(DateTime)) { return(TypeBuilding.RedirectToType("DateTime", @".\DataTypes\DateTime", typeof(DateTime))); } if (type == typeof(DateTimeOffset)) { return(TypeBuilding.RedirectToType("DateTime", @".\DataTypes\DateTime", typeof(DateTimeOffset))); } if (type == typeof(TimeSpan)) { return(TypeBuilding.RedirectToType("TimeSpan", @".\DataTypes\TimeSpan", typeof(TimeSpan))); } return(null); }
public virtual ITypeBuildingContext?ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo typeInfo, ITypeScriptUnitFactory unitFactory) { if (typeRedirects.TryGetValue(typeInfo, out var redirect)) { return(TypeBuilding.RedirectToType(redirect.Name, redirect.Location, typeInfo)); } var contextCreation = typeBuildingContextRules.SingleOrDefault(x => x.Accept(typeInfo)); if (contextCreation == null) { return(null); } return(contextCreation.CreateContext != null ? contextCreation.CreateContext(typeInfo) : contextCreation.CreateContextWithUnit(unitFactory.GetOrCreateTypeUnit(initialUnitPath), typeInfo)); }
public virtual ITypeBuildingContext?ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo typeInfo, ITypeScriptUnitFactory unitFactory) { if (typeRedirects.TryGetValue(typeInfo, out var redirect)) { return(TypeBuilding.RedirectToType(redirect.Name, redirect.Location, typeInfo)); } if (typeBuildingContexts.TryGetValue(typeInfo, out var createContext)) { return(createContext(typeInfo)); } foreach (var typeBuildingContextWithAcceptanceChecking in typeBuildingContextsWithAcceptanceChecking) { if (typeBuildingContextWithAcceptanceChecking.Accept(typeInfo)) { return(typeBuildingContextWithAcceptanceChecking.CreateContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), typeInfo)); } } return(null); }
public ITypeBuildingContext ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo type, ITypeScriptUnitFactory unitFactory) { if (type.Equals(TypeInfo.From <TimeGuid>())) { return(TypeBuilding.RedirectToType("TimeGuid", @"..\DataTypes\TimeGuid", type)); } if (type.Equals(TypeInfo.From <Timestamp>())) { return(TypeBuilding.RedirectToType("Timestamp", @"..\DataTypes\Timestamp", type)); } if (type.Equals(TypeInfo.From <TimestampRange>())) { return(TypeBuilding.RedirectToType("DateTimeRange", @"..\DataTypes\DateTimeRange", type)); } if (InternalApiTypeBuildingContext.Accept(type)) { return(new InternalApiTypeBuildingContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), type)); } return(null); }