| 1 | import * as ProviderRegistry from "../ProviderRegistry.ts"; |
| 2 | import type { ServerProvider } from "@t3tools/contracts"; |
| 3 | import * as Effect from "effect/Effect"; |
| 4 | import * as Layer from "effect/Layer"; |
| 5 | import * as Stream from "effect/Stream"; |
| 6 | import { makeManualOnlyProviderMaintenanceCapabilities } from "@t3tools/provider-core/server/maintenanceResolver"; |
| 7 | |
| 8 | const makeProviderRegistryMock = ( |
| 9 | providers: ReadonlyArray<ServerProvider> = [], |
| 10 | ): ProviderRegistry.ProviderRegistry["Service"] => ({ |
| 11 | getProviders: Effect.succeed(providers), |
| 12 | refresh: () => Effect.succeed(providers), |
| 13 | refreshInstance: () => Effect.succeed(providers), |
| 14 | refreshWorkspaceSnapshot: () => Effect.succeed(providers), |
| 15 | getProviderMaintenanceCapabilitiesForInstance: (_instanceId, provider) => |
| 16 | Effect.succeed(makeManualOnlyProviderMaintenanceCapabilities({ provider, packageName: null })), |
| 17 | setProviderMaintenanceActionState: () => Effect.succeed(providers), |
| 18 | streamChanges: Stream.empty, |
| 19 | }); |
| 20 | |
| 21 | export const layer = (providers: ReadonlyArray<ServerProvider> = []) => |
| 22 | Layer.succeed(ProviderRegistry.ProviderRegistry, makeProviderRegistryMock(providers)); |