Files
certd/packages/ui/certd-server/src/config/loader.ts
T

27 lines
688 B
TypeScript
Raw Normal View History

2023-06-26 12:26:59 +08:00
import path from 'path';
import _ from 'lodash';
const yaml = require('js-yaml');
const fs = require('fs');
function parseEnv() {
const config = {};
for (const key in process.env) {
let keyName = key;
if (!keyName.startsWith('certd_')) {
continue;
}
keyName = keyName.replace('certd_', '');
const configKey = keyName.replace('_', '.');
_.set(config, configKey, process.env[key]);
}
return config;
}
export function load(env = '') {
// Get document, or throw exception on error
const yamlPath = path.join(process.cwd(), `.env.${env}.yaml`);
const doc = yaml.load(fs.readFileSync(yamlPath, 'utf8'));
_.merge(doc, parseEnv());
return doc;
}