Skip to content

Commit 511e61c

Browse files
committed
queryFragment as computed property
1 parent 93f6d83 commit 511e61c

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

Sources/StructuredQueriesMacros/TableMacro.swift

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ extension TableMacro: MemberMacro {
603603
}
604604
let type = IdentifierTypeSyntax(name: declaration.name.trimmed)
605605
var allColumns: [TokenSyntax] = []
606-
var selectableColumns: [String] = []
606+
var selectableColumnsLiterals: [String] = []
607607
var columnsProperties: [DeclSyntax] = []
608608
var decodings: [String] = []
609609
var decodingUnwrappings: [String] = []
@@ -726,7 +726,7 @@ extension TableMacro: MemberMacro {
726726
}
727727

728728
// Capture all column string literals for the query fragment
729-
selectableColumns.append(
729+
selectableColumnsLiterals.append(
730730
columnName.as(StringLiteralExprSyntax.self)?.segments.description
731731
?? identifier.text.trimmingBackticks()
732732
)
@@ -989,9 +989,8 @@ extension TableMacro: MemberMacro {
989989
return []
990990
}
991991

992-
let queryFragmentString = selectableColumns.map { "\"\($0)\"" }
993-
.joined(separator: ", ")
994-
let fragmentLiteral = StringLiteralExprSyntax(content: queryFragmentString)
992+
let selectableColumns = selectableColumnsLiterals.map { "\"\($0)\"" }.joined(separator: ", ")
993+
995994
var typeAliases: [DeclSyntax] = []
996995
if declaration.hasMacroApplication("Selection") {
997996
conformances.append("\(moduleName).PartialSelectStatement")
@@ -1014,7 +1013,10 @@ extension TableMacro: MemberMacro {
10141013
public static var allColumns: [any \(moduleName).TableColumnExpression] { \
10151014
[\(allColumns.map { "QueryValue.columns.\($0)" as ExprSyntax }, separator: ", ")]
10161015
}
1017-
public var queryFragment: QueryFragment { \(fragmentLiteral) }
1016+
public var queryFragment: QueryFragment {
1017+
QueryFragment(stringLiteral: [\(raw: selectableColumns)].map { "\\"\\(QueryValue.tableName)\\".\\"\\($0)\\"" }
1018+
.joined(separator: ", "))
1019+
}
10181020
}
10191021
""",
10201022
draft,

0 commit comments

Comments
 (0)