Skip to content

Commit

Permalink
empty file notice via Translator, test
Browse files Browse the repository at this point in the history
  • Loading branch information
rnro committed Jan 6, 2025
1 parent c2712f0 commit a968d3c
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,23 @@ struct IDLToStructuredSwiftTranslator: Translator {
}
}

let fileDescription = FileDescription(
topComment: .preFormatted(codeGenerationRequest.leadingTrivia),
imports: try self.makeImports(
let imports: [ImportDescription]
if codeBlocks.isEmpty {
imports = []
codeBlocks.append(
CodeBlock(comment: .inline("This file contained no services."))
)
} else {
imports = try self.makeImports(
dependencies: codeGenerationRequest.dependencies,
accessLevel: accessLevel,
accessLevelOnImports: accessLevelOnImports
),
)
}

let fileDescription = FileDescription(
topComment: .preFormatted(codeGenerationRequest.leadingTrivia),
imports: imports,
codeBlocks: codeBlocks
)

Expand Down
9 changes: 1 addition & 8 deletions Sources/GRPCCodeGen/SourceGenerator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -87,21 +87,14 @@ public struct SourceGenerator: Sendable {
let translator = IDLToStructuredSwiftTranslator()
let textRenderer = TextBasedRenderer(indentation: self.config.indentation)

var structuredSwiftRepresentation = try translator.translate(
let structuredSwiftRepresentation = try translator.translate(
codeGenerationRequest: request,
accessLevel: self.config.accessLevel,
accessLevelOnImports: self.config.accessLevelOnImports,
client: self.config.client,
server: self.config.server
)

if structuredSwiftRepresentation.file.contents.codeBlocks.isEmpty {
structuredSwiftRepresentation.file.contents.imports = []
structuredSwiftRepresentation.file.contents.codeBlocks.append(
CodeBlock(comment: .inline("This file contained no services."))
)
}

let sourceFile = try textRenderer.render(structured: structuredSwiftRepresentation)

return sourceFile
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,25 @@ final class IDLToStructuredSwiftTranslatorSnippetBasedTests: XCTestCase {
)
}

func testEmptyFileGeneration() throws {
let expectedSwift =
"""
/// Some really exciting license header 2023.
// This file contained no services.
"""
try self.assertIDLToStructuredSwiftTranslation(
codeGenerationRequest: makeCodeGenerationRequest(
services: [],
dependencies: []
),
expectedSwift: expectedSwift,
accessLevel: .public,
server: true
)
}

private func assertIDLToStructuredSwiftTranslation(
codeGenerationRequest: CodeGenerationRequest,
expectedSwift: String,
Expand Down

0 comments on commit a968d3c

Please sign in to comment.