improve
This commit is contained in:
35
ts/index.ts
35
ts/index.ts
@ -1,16 +1,17 @@
|
||||
import * as plugins from "./qenv.plugins";
|
||||
|
||||
export class qenv {
|
||||
envVarsRequired:string[];
|
||||
envVarsAvailable:string[];
|
||||
envVarsMissing:string[];
|
||||
constructor(basePathArg = "./qenv.yml",envYmlPathArg){
|
||||
this.envVarsRequired = getEnvVarsRequired(basePathArg);
|
||||
this.envVarsAvailable;
|
||||
requiredEnvVars:string[];
|
||||
availableEnvVars:string[];
|
||||
missingEnvVars:string[];
|
||||
constructor(basePathArg = process.cwd(),envYmlPathArg){
|
||||
this.requiredEnvVars = getRequiredEnvVars(basePathArg);
|
||||
this.availableEnvVars = getAvailableEnvVars(this.requiredEnvVars,envYmlPathArg);
|
||||
this.missingEnvVars = getMissingEnvVars(this.requiredEnvVars,this.availableEnvVars);
|
||||
}
|
||||
};
|
||||
|
||||
let getEnvVarsRequired = (pathArg:string):string[] => {
|
||||
let getRequiredEnvVars = (pathArg:string):string[] => {
|
||||
let result:string[] = [];
|
||||
let qenvFilePath = plugins.path.join(pathArg,"qenv.yml");
|
||||
let qenvFile = plugins.smartfile.local.toObjectSync(qenvFilePath);
|
||||
@ -20,15 +21,27 @@ let getEnvVarsRequired = (pathArg:string):string[] => {
|
||||
return result;
|
||||
}
|
||||
|
||||
let getEnvVarsAvailable = (requiredEnvVarsArg:string[]):string[] => {
|
||||
let getAvailableEnvVars = (requiredEnvVarsArg:string[],envYmlPathArg:string):string[] => {
|
||||
let result = [];
|
||||
let envYml;
|
||||
try {
|
||||
envYml = plugins.smartfile.local.toObjectSync(envYmlPathArg);
|
||||
}
|
||||
catch(err){
|
||||
envYml = {};
|
||||
}
|
||||
for(let keyArg in requiredEnvVarsArg){
|
||||
let envVar = requiredEnvVarsArg[keyArg];
|
||||
let envVar:string = requiredEnvVarsArg[keyArg];
|
||||
if(process.env[envVar]){
|
||||
result.push(envVar);
|
||||
} else {
|
||||
|
||||
} else if(envYml.hasOwnPropery(envVar)){
|
||||
process.env[envVar] = envYml.envVar;
|
||||
result.push(envVar);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
let getMissingEnvVars = (requiredEnvVarsArray:string[],availableEnvVarsArray:string[]) => {
|
||||
return plugins.lodash.difference(requiredEnvVarsArray,availableEnvVarsArray);
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
import "typings-global";
|
||||
export import beautylog = require("beautylog");
|
||||
export let lodash = require("lodash");
|
||||
export import path = require("path");
|
||||
export import smartfile = require("smartfile");
|
||||
|
Reference in New Issue
Block a user