Skip to content
Source
Sign inSign up

SecretResolver.ts

20 lines807 Bytes

1import * as SecretResolverCore from "@t3tools/secret-provider-core/server/SecretResolver";
2import type { ServerSettings } from "@t3tools/contracts";
3import * as Effect from "effect/Effect";
4import * as Layer from "effect/Layer";
5​
6import { BUILT_IN_SECRET_PROVIDER_DRIVER_LIST } from "./secretProviderDefinitions.ts";
7import * as Settings from "../serverSettings.ts";
8​
9export const layer = Layer.unwrap(
10 Effect.gen(function* () {
11 const serverSettings = yield* Settings.ServerSettingsService;
12 return SecretResolverCore.layer({
13 drivers: BUILT_IN_SECRET_PROVIDER_DRIVER_LIST,
14 secretProviders: serverSettings.getSettings.pipe(
15 Effect.map((settings) => settings.secretProviders),
16 Effect.orElseSucceed((): ServerSettings["secretProviders"] => ({})),
17 ),
18 });
19 }),
20);