@xec-sh/cli
Version:
Xec: The Universal Shell for TypeScript
52 lines • 1.41 kB
JavaScript
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