Skip to content

Commit 5386151

Browse files
authored
Merge pull request #8 from wickwirew/table-name-pattern
Added support for a table name pattern
2 parents 251b430 + d5644a9 commit 5386151

File tree

6 files changed

+549
-9
lines changed

6 files changed

+549
-9
lines changed

Sources/Compiler/Config.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public struct Config: Codable {
1414
public let output: String?
1515
public let databaseName: String?
1616
public let additionalImports: [String]?
17+
public let tableNamePattern: String?
1718

1819
struct NotFoundError: Error, CustomStringConvertible {
1920
var description: String { "Config does not exist" }

Sources/Compiler/Gen/Language.swift

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import Foundation
1313
public protocol Language {
1414
init(options: GenerationOptions)
1515

16+
var options: GenerationOptions { get }
17+
1618
var boolName: String { get }
1719

1820
/// A list of types that have builtin adapters supplied by the library.
@@ -186,8 +188,12 @@ extension Language {
186188
}
187189

188190
private func model(for table: Table) -> GeneratedModel {
189-
GeneratedModel(
190-
name: table.name.name.capitalizedFirst,
191+
var name = table.name.name.capitalizedFirst
192+
if let pattern = options.tableNamePattern {
193+
name = String(format: pattern, name)
194+
}
195+
return GeneratedModel(
196+
name: name,
191197
fields: table.columns.reduce(into: [:]) { fields, column in
192198
let name = column.key.description
193199
let type = column.value.type
@@ -365,15 +371,18 @@ public struct GenerationOptions: Sendable {
365371
public var databaseName: String
366372
public var imports: [String]
367373
public var createDirectoryIfNeeded: Bool
374+
public var tableNamePattern: String?
368375

369376
public init(
370377
databaseName: String,
371378
imports: [String] = [],
372-
createDirectoryIfNeeded: Bool = true
379+
createDirectoryIfNeeded: Bool = true,
380+
tableNamePattern: String? = nil
373381
) {
374382
self.databaseName = databaseName
375383
self.imports = imports
376384
self.createDirectoryIfNeeded = createDirectoryIfNeeded
385+
self.tableNamePattern = tableNamePattern
377386
}
378387
}
379388

Sources/Compiler/Gen/SwiftLanguage.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
//
77

88
public struct SwiftLanguage: Language {
9-
let options: GenerationOptions
9+
public let options: GenerationOptions
1010
private var writer = SourceWriter()
1111

1212
public init(options: GenerationOptions) {

Sources/PureSQLCLI/GenerateCommand.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ struct GenerateCommand: AsyncParsableCommand {
4545
let options = GenerationOptions(
4646
databaseName: config.databaseName ?? "DB",
4747
imports: config.additionalImports ?? [],
48-
createDirectoryIfNeeded: !skipDirectoryCreate
48+
createDirectoryIfNeeded: !skipDirectoryCreate,
49+
tableNamePattern: config.tableNamePattern
4950
)
5051

5152
try await generate(

0 commit comments

Comments
 (0)