feat: config merge

This commit is contained in:
xiaojunnuo
2023-06-26 12:26:59 +08:00
parent 99522fb49a
commit fdc25dc0d7
11 changed files with 58 additions and 20 deletions
@@ -0,0 +1,26 @@
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;
}