BREAKING CHANGE(scope): change scope to @pushrocks/

This commit is contained in:
2018-08-13 00:09:37 +02:00
parent 26104a231d
commit 2b3198c5bb
21 changed files with 1055 additions and 717 deletions

View File

@ -1 +1 @@
export * from './qenv.classes.qenv'
export * from './qenv.classes.qenv';

View File

@ -1,37 +1,42 @@
import * as plugins from './qenv.plugins'
import * as helpers from './qenv.helpers'
import * as plugins from './qenv.plugins';
import * as helpers from './qenv.helpers';
export interface IKeyValueObject {
key: string,
value: string
key: string;
value: string;
}
export class Qenv {
requiredEnvVars: string[] = []
availableEnvVars: string[] = []
missingEnvVars: string[] = []
keyValueObjectArray: IKeyValueObject[] = []
constructor (basePathArg = process.cwd(), envYmlPathArg, failOnMissing = true) {
basePathArg = plugins.path.resolve(basePathArg)
envYmlPathArg = plugins.path.resolve(envYmlPathArg)
helpers.getRequiredEnvVars(basePathArg, this.requiredEnvVars)
helpers.getAvailableEnvVars(this.requiredEnvVars, envYmlPathArg, this.availableEnvVars, this.keyValueObjectArray)
this.missingEnvVars = helpers.getMissingEnvVars(this.requiredEnvVars, this.availableEnvVars)
requiredEnvVars: string[] = [];
availableEnvVars: string[] = [];
missingEnvVars: string[] = [];
keyValueObjectArray: IKeyValueObject[] = [];
constructor(basePathArg = process.cwd(), envYmlPathArg, failOnMissing = true) {
basePathArg = plugins.path.resolve(basePathArg);
envYmlPathArg = plugins.path.resolve(envYmlPathArg);
helpers.getRequiredEnvVars(basePathArg, this.requiredEnvVars);
helpers.getAvailableEnvVars(
this.requiredEnvVars,
envYmlPathArg,
this.availableEnvVars,
this.keyValueObjectArray
);
this.missingEnvVars = helpers.getMissingEnvVars(this.requiredEnvVars, this.availableEnvVars);
// handle missing variables
if (this.missingEnvVars.length > 0) {
console.info('Required Env Vars are:')
console.log(this.requiredEnvVars)
console.error('However some Env variables could not be resolved:')
console.log(this.missingEnvVars)
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)
console.error('Exiting!');
process.exit(1);
}
}
}
getEnvVar (envVarName): string {
return process.env[envVarName]
getEnvVar(envVarName): string {
return process.env[envVarName];
}
}

View File

@ -1,13 +1,13 @@
import * as plugins from './qenv.plugins'
import { IKeyValueObject } from './qenv.classes.qenv'
import * as plugins from './qenv.plugins';
import { IKeyValueObject } from './qenv.classes.qenv';
export let getRequiredEnvVars = (pathArg: string, requiredEnvVarsArray: string[]) => {
let qenvFilePath = plugins.path.join(pathArg, 'qenv.yml')
let qenvFile = plugins.smartfile.fs.toObjectSync(qenvFilePath)
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 ])
requiredEnvVarsArray.push(qenvFile.vars[keyArg]);
}
}
};
export let getAvailableEnvVars = (
requiredEnvVarsArg: string[],
@ -15,32 +15,41 @@ export let getAvailableEnvVars = (
availableEnvVarsArray: string[],
keyValueObjectArrayArg: IKeyValueObject[]
) => {
envYmlPathArg = plugins.path.join(envYmlPathArg, 'env.yml')
let envYml
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 = {}
console.log("env file couldn't be found at " + envYmlPathArg);
envYml = {};
}
for (let requiredEnvVar of requiredEnvVarsArg) {
if (process.env[ requiredEnvVar ]) {
availableEnvVarsArray.push(requiredEnvVar)
if (process.env[requiredEnvVar]) {
availableEnvVarsArray.push(requiredEnvVar);
keyValueObjectArrayArg.push({
key: requiredEnvVar,
value: process.env[ requiredEnvVar ]
})
value: process.env[requiredEnvVar]
});
} else if (envYml.hasOwnProperty(requiredEnvVar)) {
process.env[ requiredEnvVar ] = envYml[ requiredEnvVar ]
availableEnvVarsArray.push(requiredEnvVar)
process.env[requiredEnvVar] = envYml[requiredEnvVar];
availableEnvVarsArray.push(requiredEnvVar);
keyValueObjectArrayArg.push({
key: requiredEnvVar,
value: process.env[ requiredEnvVar ]
})
value: process.env[requiredEnvVar]
});
}
}
}
};
export let getMissingEnvVars = (requiredEnvVarsArray: string[], availableEnvVarsArray: string[]) => {
return plugins.lodash.difference(requiredEnvVarsArray, availableEnvVarsArray)
}
export let getMissingEnvVars = (
requiredEnvVarsArray: string[],
availableEnvVarsArray: string[]
): string[] => {
const missingEnvVars: string[] = [];
for (const envVar of requiredEnvVarsArray) {
if (!availableEnvVarsArray.includes(envVar)) {
missingEnvVars.push(envVar);
}
}
return missingEnvVars;
};

View File

@ -1,4 +1,2 @@
import 'typings-global'
export let lodash = require('lodash')
export import path = require('path')
export import smartfile = require('smartfile')
export import path = require('path');
export import smartfile = require('@pushrocks/smartfile');