remove beautylog dependency
This commit is contained in:
83
ts/index.ts
83
ts/index.ts
@ -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)
|
||||
}
|
||||
|
@ -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')
|
||||
|
Reference in New Issue
Block a user