UNPKG

@xec-sh/cli

Version:

Xec: The Universal Shell for TypeScript

52 lines 1.41 kB
export class EnvSecretProvider { constructor(config) { this.prefix = 'SECRET_'; if (config?.['prefix']) { this.prefix = config['prefix']; } } async initialize() { } async get(key) { const envKey = this.getEnvKey(key); return process.env[envKey] || null; } async set(key, value) { const envKey = this.getEnvKey(key); process.env[envKey] = value; } async delete(key) { const envKey = this.getEnvKey(key); delete process.env[envKey]; } async list() { const keys = []; const prefix = this.prefix; for (const envKey of Object.keys(process.env)) { if (envKey.startsWith(prefix)) { const key = this.getKeyFromEnv(envKey); if (key) { keys.push(key); } } } return keys; } async has(key) { const envKey = this.getEnvKey(key); return envKey in process.env; } getEnvKey(key) { return this.prefix + key.toUpperCase().replace(/[.-]/g, '_'); } getKeyFromEnv(envKey) { if (!envKey.startsWith(this.prefix)) { return null; } return envKey .substring(this.prefix.length) .toLowerCase() .replace(/_/g, '-'); } } //# sourceMappingURL=env.js.map