Skip to content

Commit 27ff2b6

Browse files
committed
fix issue in typescript generation where extends clasuse includes package name
1 parent 39f0f26 commit 27ff2b6

File tree

3 files changed

+9
-10
lines changed

3 files changed

+9
-10
lines changed

src/Kiota.Builder/Refiners/CommonLanguageRefiner.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -948,7 +948,7 @@ parent is CodeType parentType &&
948948
}
949949
}
950950
}
951-
protected static void AddParentClassToErrorClasses(CodeElement currentElement, string parentClassName, string parentClassNamespace, bool addNamespaceToInheritDeclaration = false, bool isInterface = false)
951+
protected static void AddParentClassToErrorClasses(CodeElement currentElement, string parentClassName, string parentClassNamespace, bool addNamespaceToInheritDeclaration = false, bool isInterface = false, bool isErasable = false)
952952
{
953953
if (currentElement is CodeClass currentClass &&
954954
currentClass.IsErrorDefinition &&
@@ -960,11 +960,6 @@ protected static void AddParentClassToErrorClasses(CodeElement currentElement, s
960960
{
961961
Name = parentClassName,
962962
IsExternal = true,
963-
TypeDefinition = new CodeType
964-
{
965-
Name = parentClassNamespace,
966-
IsExternal = true,
967-
}
968963
});
969964
}
970965
else
@@ -997,10 +992,11 @@ protected static void AddParentClassToErrorClasses(CodeElement currentElement, s
997992
{
998993
Name = parentClassNamespace,
999994
IsExternal = true,
1000-
}
995+
},
996+
IsErasable = isErasable
1001997
});
1002998
}
1003-
CrawlTree(currentElement, x => AddParentClassToErrorClasses(x, parentClassName, parentClassNamespace, addNamespaceToInheritDeclaration, isInterface));
999+
CrawlTree(currentElement, x => AddParentClassToErrorClasses(x, parentClassName, parentClassNamespace, addNamespaceToInheritDeclaration, isInterface, isErasable));
10041000
}
10051001
protected static void AddDiscriminatorMappingsUsingsToParentClasses(CodeElement currentElement, string parseNodeInterfaceName, bool addFactoryMethodImport = false, bool addUsings = true, bool includeParentNamespace = false)
10061002
{

src/Kiota.Builder/Refiners/TypeScriptRefiner.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public override Task Refine(CodeNamespace generatedCode, CancellationToken cance
5757
"ApiError",
5858
"@microsoft/kiota-abstractions",
5959
false,
60+
true,
6061
true
6162
);
6263
AddGetterAndSetterMethods(generatedCode,

tests/Kiota.Builder.Tests/Refiners/TypeScriptLanguageRefinerTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,16 @@ public async Task AddStaticMethodsUsingsForDeserializer()
9797
[Fact]
9898
public async Task AddsExceptionImplementsOnErrorClasses()
9999
{
100+
var apiErrorClassName = "ApiError";
100101
var model = TestHelper.CreateModelClass(root, "ErrorModel");
101102
model.IsErrorDefinition = true;
102103
await ILanguageRefiner.Refine(new GenerationConfiguration { Language = GenerationLanguage.TypeScript }, root);
103104

104105
var declaration = model.StartBlock;
105106

106-
Assert.Contains("ApiError", declaration.Usings.Select(static x => x.Name), StringComparer.OrdinalIgnoreCase);
107-
Assert.Contains("ApiError", declaration.Implements.Select(static x => x.Name), StringComparer.OrdinalIgnoreCase);
107+
Assert.True(declaration.Usings.First(x => x.Name == apiErrorClassName).IsErasable);
108+
Assert.Contains(apiErrorClassName, declaration.Usings.Select(static x => x.Name), StringComparer.OrdinalIgnoreCase);
109+
Assert.Contains(apiErrorClassName, declaration.Implements.Select(static x => x.Name), StringComparer.OrdinalIgnoreCase);
108110
}
109111
[Fact]
110112
public async Task InlineParentOnErrorClassesWhichAlreadyInherit()

0 commit comments

Comments
 (0)