remove beautylog dependency

This commit is contained in:
2017-01-21 11:51:30 +01:00
parent 7de17bbefa
commit ead69f3bb9
10 changed files with 98 additions and 104 deletions

View File

@ -1,4 +1,4 @@
import * as plugins from "./qenv.plugins";
import * as plugins from "./qenv.plugins"
export interface IKeyValueObject {
key: string,
@ -6,67 +6,66 @@ export interface IKeyValueObject {
};
export class Qenv {
requiredEnvVars:string[] = [];
availableEnvVars:string[] = [];
missingEnvVars:string[] = [];
keyValueObjectArray:IKeyValueObject[] = [];
requiredEnvVars: string[] = []
availableEnvVars:string[] = []
missingEnvVars:string[] = []
keyValueObjectArray:IKeyValueObject[] = []
constructor(basePathArg = process.cwd(),envYmlPathArg,failOnMissing = true){
getRequiredEnvVars(basePathArg,this.requiredEnvVars);
getAvailableEnvVars(this.requiredEnvVars,envYmlPathArg,this.availableEnvVars,this.keyValueObjectArray);
this.missingEnvVars = getMissingEnvVars(this.requiredEnvVars,this.availableEnvVars);
//handle missing variables
getRequiredEnvVars(basePathArg,this.requiredEnvVars)
getAvailableEnvVars(this.requiredEnvVars,envYmlPathArg,this.availableEnvVars,this.keyValueObjectArray)
this.missingEnvVars = getMissingEnvVars(this.requiredEnvVars,this.availableEnvVars)
// handle missing variables
if (this.missingEnvVars.length > 0){
plugins.beautylog.info("Required Env Vars are:")
console.log(this.requiredEnvVars);
plugins.beautylog.error("However some Env variables could not be resolved:");
console.log(this.missingEnvVars);
if(failOnMissing){
plugins.beautylog.error("Exiting!")
process.exit(1);
console.info('Required Env Vars are:')
console.log(this.requiredEnvVars)
console.error('However some Env variables could not be resolved:')
console.log(this.missingEnvVars)
if (failOnMissing) {
console.error('Exiting!')
process.exit(1)
}
}
};
};
let getRequiredEnvVars = (pathArg:string, requiredEnvVarsArray:string[]) => {
let qenvFilePath = plugins.path.join(pathArg,"qenv.yml");
let qenvFile = plugins.smartfile.fs.toObjectSync(qenvFilePath);
for(let keyArg in qenvFile.vars){
requiredEnvVarsArray.push(qenvFile.vars[keyArg]);
let getRequiredEnvVars = (pathArg: string, requiredEnvVarsArray: string[]) => {
let qenvFilePath = plugins.path.join(pathArg,'qenv.yml')
let qenvFile = plugins.smartfile.fs.toObjectSync(qenvFilePath)
for (let keyArg in qenvFile.vars) {
requiredEnvVarsArray.push(qenvFile.vars[keyArg])
};
}
let getAvailableEnvVars = (requiredEnvVarsArg:string[],envYmlPathArg:string,availableEnvVarsArray:string[],keyValueObjectArrayArg:IKeyValueObject[]) => {
envYmlPathArg = plugins.path.join(envYmlPathArg,"env.yml")
let envYml;
let getAvailableEnvVars = (requiredEnvVarsArg: string[],envYmlPathArg: string,availableEnvVarsArray: string[],keyValueObjectArrayArg: IKeyValueObject[]) => {
envYmlPathArg = plugins.path.join(envYmlPathArg,'env.yml')
let envYml
try {
envYml = plugins.smartfile.fs.toObjectSync(envYmlPathArg);
envYml = plugins.smartfile.fs.toObjectSync(envYmlPathArg)
} catch (err) {
console.log("env file couldn't be found at " + envYmlPathArg)
envYml = {}
}
catch(err){
plugins.beautylog.log("env file couldn't be found at " + envYmlPathArg)
envYml = {};
}
for(let requiredEnvVar of requiredEnvVarsArg){
if(process.env[requiredEnvVar]){
availableEnvVarsArray.push(requiredEnvVar);
for (let requiredEnvVar of requiredEnvVarsArg){
if (process.env[requiredEnvVar]){
availableEnvVarsArray.push(requiredEnvVar)
keyValueObjectArrayArg.push({
key: requiredEnvVar,
value: process.env[requiredEnvVar]
});
} else if(envYml.hasOwnProperty(requiredEnvVar)){
process.env[requiredEnvVar] = envYml[requiredEnvVar];
availableEnvVarsArray.push(requiredEnvVar);
})
} else if (envYml.hasOwnProperty(requiredEnvVar)){
process.env[requiredEnvVar] = envYml[requiredEnvVar]
availableEnvVarsArray.push(requiredEnvVar)
keyValueObjectArrayArg.push({
key: requiredEnvVar,
value: process.env[requiredEnvVar]
});
})
}
};
};
}
let getMissingEnvVars = (requiredEnvVarsArray:string[],availableEnvVarsArray:string[]) => {
return plugins.lodash.difference(requiredEnvVarsArray,availableEnvVarsArray);
};
let getMissingEnvVars = (requiredEnvVarsArray: string[],availableEnvVarsArray: string[]) => {
return plugins.lodash.difference(requiredEnvVarsArray,availableEnvVarsArray)
}

View File

@ -1,5 +1,4 @@
import "typings-global";
export import beautylog = require("beautylog");
export let lodash = require("lodash");
export import path = require("path");
export import smartfile = require("smartfile");
import 'typings-global';
export let lodash = require('lodash');
export import path = require('path');
export import smartfile = require('smartfile')