feat: Starts database client dependency.

This commit is contained in:
2025-12-29 13:49:12 -05:00
parent dce358d85e
commit ccf0dfabaa
7 changed files with 528 additions and 6 deletions

View File

@@ -0,0 +1,35 @@
import Dependencies
import DependenciesMacros
import FluentKit
import ManualDCore
extension DependencyValues {
public var database: DatabaseClient {
get { self[DatabaseClient.self] }
set { self[DatabaseClient.self] = newValue }
}
}
@DependencyClient
public struct DatabaseClient: Sendable {
public var migrations: Migrations
public var projects: Projects
}
extension DatabaseClient {
@DependencyClient
public struct Migrations: Sendable {
public var run: @Sendable () async throws -> [any AsyncMigration]
}
}
extension DatabaseClient: TestDependencyKey {
public static let testValue: DatabaseClient = Self(
migrations: .testValue,
projects: .testValue
)
}
extension DatabaseClient.Migrations: TestDependencyKey {
public static let testValue = Self()
}