mirror of https://github.com/certd/certd
refactor: 1.1.4
parent
461de8d269
commit
0317118cd9
|
@ -7,7 +7,6 @@ import { PipelineEntity } from '../modules/pipeline/entity/pipeline';
|
|||
//import { logger } from '../utils/logger';
|
||||
// load .env file in process.cwd
|
||||
import { mergeConfig } from './loader';
|
||||
|
||||
const development = {
|
||||
keys: '',
|
||||
koa: {
|
||||
|
@ -16,7 +15,7 @@ const development = {
|
|||
staticFile: {
|
||||
usePrecompiledGzip: true,
|
||||
buffer: true,
|
||||
maxAge: 60 * 60 * 24 * 30 * 1000,
|
||||
maxAge: 0,
|
||||
gzip: true,
|
||||
dirs: {
|
||||
default: {
|
||||
|
@ -25,11 +24,6 @@ const development = {
|
|||
alias: {
|
||||
'/': '/index.html',
|
||||
},
|
||||
files: {
|
||||
'/index.html': {
|
||||
maxAge: 60 * 60 * 1000,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -4,7 +4,7 @@ import _ from 'lodash';
|
|||
const yaml = require('js-yaml');
|
||||
const fs = require('fs');
|
||||
|
||||
function parseEnv() {
|
||||
function parseEnv(defaultConfig: any) {
|
||||
const config = {};
|
||||
for (const key in process.env) {
|
||||
let keyName = key;
|
||||
|
@ -13,21 +13,30 @@ function parseEnv() {
|
|||
}
|
||||
keyName = keyName.replace('certd_', '');
|
||||
const configKey = keyName.replace('_', '.');
|
||||
_.set(config, configKey, process.env[key]);
|
||||
const oldValue = _.get(defaultConfig, configKey);
|
||||
let value: any = process.env[key];
|
||||
if (typeof oldValue === 'boolean') {
|
||||
value = value === 'true';
|
||||
} else if (Number.isInteger(oldValue)) {
|
||||
value = parseInt(value, 10);
|
||||
} else if (typeof oldValue === 'number') {
|
||||
value = parseFloat(value);
|
||||
}
|
||||
_.set(config, configKey, value);
|
||||
}
|
||||
return config;
|
||||
}
|
||||
|
||||
export function load(env = '') {
|
||||
export function load(config, 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());
|
||||
_.merge(doc, parseEnv(config));
|
||||
return doc;
|
||||
}
|
||||
|
||||
export function mergeConfig(config: any, envType: string) {
|
||||
_.merge(config, load(envType));
|
||||
_.merge(config, load(config, envType));
|
||||
const keys = _.get(config, 'auth.jwt.secret');
|
||||
if (keys) {
|
||||
config.keys = keys;
|
||||
|
|
Loading…
Reference in New Issue