diff --git a/Directory.Build.props b/Directory.Build.props index 33fd268..e0eff3b 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,8 +1,8 @@ - 3.9.2 - 3.9.1 + 3.9.3 + 3.9.2 $(NoWarn);1591;1998;NU1507;NU5105 FacilityApi FacilityJavaScript diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 575cb78..6bda466 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,6 +2,10 @@ These are the NuGet package releases. See also [npm Release Notes](ReleaseNotesNpm.md). +## 3.9.3 + +* Fix an extra blank line at the end of generated TypeScript types files. + ## 3.9.2 * Update dependencies. diff --git a/conformance/src/conformanceApiTypes.ts b/conformance/src/conformanceApiTypes.ts index c8e4801..ad7b1d3 100644 --- a/conformance/src/conformanceApiTypes.ts +++ b/conformance/src/conformanceApiTypes.ts @@ -553,4 +553,3 @@ export enum ApiErrors { /** I'm "too" 😄! */ TooHappy = 'TooHappy', } - diff --git a/example/ts/src/exampleApiTypes.ts b/example/ts/src/exampleApiTypes.ts index 45ce934..8fb2b74 100644 --- a/example/ts/src/exampleApiTypes.ts +++ b/example/ts/src/exampleApiTypes.ts @@ -355,4 +355,3 @@ export enum ExampleApiErrors { /** The user is not an administrator. */ NotAdmin = 'NotAdmin', } - diff --git a/src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs b/src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs index e786495..e0db116 100644 --- a/src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs +++ b/src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs @@ -141,7 +141,6 @@ public override CodeGenOutput GenerateOutput(ServiceInfo service) WriteImports(code, import.Select(x => $"{x.Name}{(x.Name != x.Alias ? $" as {x.Alias}" : "")}").ToArray(), import.Key); typeNames.AddRange(WriteTypes(code, httpServiceInfo)); - code.WriteLine(); })); } diff --git a/tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs b/tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs index 9699d80..d5f4dad 100644 --- a/tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs +++ b/tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs @@ -402,6 +402,25 @@ public void GenerateExampleApiTypeScript_DataPropertiesRequired() Assert.That(typesFile.Text, Does.Contain("}")); } + [Test] + public void GenerateExampleApiTypeScript_TypesFileDoesNotEndWithBlankLine() + { + const string definition = "service TestApi { }"; + var parser = CreateParser(); + var service = parser.ParseDefinition(new ServiceDefinitionText("TestApi.fsd", definition)); + var generator = new JavaScriptGenerator + { + GeneratorName = "JavaScriptGeneratorTests", + TypeScript = true, + NewLine = "\n", + }; + var result = generator.GenerateOutput(service); + + var typesFile = result.Files.Single(f => f.Name == "testApiTypes.ts"); + Assert.That(typesFile.Text, Does.EndWith("\n")); + Assert.That(typesFile.Text, Does.Not.EndWith("\n\n")); + } + [TestCase("", true)] [TestCase("", false)] [TestCase("suffix", true)]