UNPKG

every-plugin

Version:
51 lines (49 loc) 1.97 kB
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs'); const require_errors = require('../errors.cjs'); let zod = require("zod"); zod = require_runtime.__toESM(zod, 1); let effect = require("effect"); //#region src/runtime/services/secrets.service.ts const configSchema = zod.object({ secrets: zod.record(zod.string(), zod.unknown()) }).passthrough(); var SecretsConfigTag = class extends effect.Context.Tag("SecretsConfig")() {}; var SecretsService = class extends effect.Effect.Service()("SecretsService", { effect: effect.Effect.gen(function* () { const secrets = yield* SecretsConfigTag; const hydrateValue = (value) => { if (typeof value === "string") { let result = value; for (const [key, secretValue] of Object.entries(secrets)) { const pattern = new RegExp(`{{${key}}}`, "g"); result = result.replace(pattern, String(secretValue)); } return result; } if (Array.isArray(value)) return value.map(hydrateValue); if (value && typeof value === "object") { if (value.constructor === Object || value.constructor === void 0) { const hydrated = {}; for (const [key, val] of Object.entries(value)) hydrated[key] = hydrateValue(val); return hydrated; } const hydrated = Object.create(Object.getPrototypeOf(value)); for (const [key, val] of Object.entries(value)) hydrated[key] = hydrateValue(val); return hydrated; } return value; }; return { hydrateSecrets: (config) => effect.Effect.gen(function* () { const parseResult = configSchema.parse(config); try { return hydrateValue(parseResult); } catch (error) { return yield* effect.Effect.fail(new require_errors.PluginRuntimeError({ operation: "hydrate-secrets", cause: error instanceof Error ? error : new Error(String(error)), retryable: false })); } }) }; }) }) {}; //#endregion exports.SecretsConfigTag = SecretsConfigTag; exports.SecretsService = SecretsService; //# sourceMappingURL=secrets.service.cjs.map