every-plugin
Version:
51 lines (49 loc) • 1.97 kB
JavaScript
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