migrate to .env for tokens and implement chats

This commit is contained in:
2025-08-20 11:59:03 -04:00
parent a5247d6f5d
commit ac6e6ae73d
6 changed files with 130 additions and 53 deletions

View File

@@ -0,0 +1,27 @@
import SwiftSyntax
import SwiftSyntaxMacros
import SwiftCompilerPlugin
public struct ReadEnv: ExpressionMacro {
public static func expansion(of node: some FreestandingMacroExpansionSyntax, in context: some MacroExpansionContext) throws -> ExprSyntax {
guard let argument = node.arguments.first?.expression,
let segments = argument.as(StringLiteralExprSyntax.self)?.segments,
segments.count == 1,
case .stringSegment(let literalSegment)? = segments.first
else {
throw CustomError.message("Need a static string")
}
let name = literalSegment.content.text
return """
ProcessInfo.processInfo.environment["\(raw: name)"]
"""
}
}
enum CustomError: Error { case message(String) }
@main
struct NahiMacros: CompilerPlugin {
var providingMacros: [Macro.Type] = [ReadEnv.self]
}