now has a env vars feature

This commit is contained in:
2017-04-21 00:04:28 +02:00
parent cf0aabfbfc
commit 46baf07551
24 changed files with 275 additions and 230 deletions

View File

@ -1,9 +1,10 @@
import {getEnv, printEnv} from './smartenv.environment'
import {getEnv, printEnv, getEnvVars} from './smartenv.export'
import { obs } from './smartenv.objectstorage'
export {
getEnv,
getEnvVars,
printEnv,
obs
}

View File

@ -0,0 +1,22 @@
import helpers = require('./smartenv.envhelpers')
export class Environment {
runtimeEnv: string
isBrowser: boolean
userAgent: string
isNode: boolean
nodeVersion: string
isCI: boolean
isTravis: boolean
isC9: boolean
constructor () {
this.runtimeEnv = helpers.getEnvString()
this.isBrowser = helpers.isBrowser()
this.userAgent = helpers.getUserAgentString()
this.isNode = helpers.isNode()
this.nodeVersion = helpers.getNodeVersion()
this.isCI = helpers.isCI()
this.isTravis = helpers.isTravis()
this.isC9 = helpers.isC9()
};
}

View File

@ -1,22 +0,0 @@
import helpers = require('./smartenv.classes.helpers')
export class Environment {
runtimeEnv: string
isBrowser: boolean
userAgent: string
isNode: boolean
nodeVersion: string
isCI: boolean
isTravis: boolean
isC9: boolean
constructor() {
this.runtimeEnv = helpers.getEnvString()
this.isBrowser = helpers.isBrowser()
this.userAgent = helpers.getUserAgentString()
this.isNode = helpers.isNode()
this.nodeVersion = helpers.getNodeVersion()
this.isCI = helpers.isCI()
this.isTravis = helpers.isTravis()
this.isC9 = helpers.isC9()
};
}

View File

@ -1,38 +0,0 @@
/**
* Deals with the environment the current JS script is running in.
*/
import * as plugins from './smartenv.plugins'
import * as classes from './smartenv.classes'
import * as objectStorage from './smartenv.objectstorage'
let environment: classes.Environment
let envDetermined: boolean = false
/**
* returns the environment
* @returns {Environment}
*/
export var getEnv = function(){
if (!envDetermined) {
environment = new classes.Environment()
envDetermined = true // ensure code above only runs once
};
return environment
}
/**
* prints the environment to console
*/
export var printEnv = function() {
if (this.getEnv().isNode) {
console.log('running on NODE')
let smartenvVersion = require('../package.json').version
console.log('node version is ' + this.getEnv().nodeVersion + ' and smartenv version is ' + smartenvVersion)
} else {
console.log('running on BROWSER')
console.log('browser is ' + this.getEnv().userAgent)
}
console.log('the smartenv registration store currently holds the following properties:')
console.log(Object.getOwnPropertyNames(objectStorage.obs.getAll()))
}

56
ts/smartenv.export.ts Normal file
View File

@ -0,0 +1,56 @@
/**
* Deals with the environment the current JS script is running in.
*/
import * as plugins from './smartenv.plugins'
import * as classes from './smartenv.classes.environment'
import * as objectStorage from './smartenv.objectstorage'
let environment: classes.Environment = null
/**
* returns the environment
* @returns {Environment}
*/
export let getEnv = function () {
if (!environment) {
environment = new classes.Environment()
};
return environment
}
/**
* prints the environment to console
*/
export let printEnv = function () {
if (this.getEnv().isNode) {
console.log('running on NODE')
let smartenvVersion = require('../package.json').version
console.log('node version is ' + this.getEnv().nodeVersion + ' and smartenv version is ' + smartenvVersion)
} else {
console.log('running on BROWSER')
console.log('browser is ' + this.getEnv().userAgent)
}
console.log('the smartenv registration store currently holds the following properties:')
console.log(Object.getOwnPropertyNames(objectStorage.obs.getAll()))
}
export interface IEnvObject {
name: string
value: string
}
export let getEnvVars = async (regexArg: RegExp) => {
let resultArray: IEnvObject[] = []
for (let key in process.env) {
if (regexArg.test(key)) {
resultArray.push({
name: key,
value: process.env[key]
})
}
}
return resultArray
}

View File

@ -6,20 +6,20 @@ export let obsItems: any = {}
* Objectstorage allows easy sharing of objects within node
*/
export let obs: any = {
add: function (paramNameArg = 'undefined', objectArg = 'undefined') {
if (paramNameArg === 'undefined') {
console.log('paramName is undefined')
add: (keyNameArg, objectArg) => {
if (!keyNameArg) {
console.log('keyName is undefined')
return
}
if (objectArg === 'undefined') {
if (!objectArg) {
console.log('objectArg is undefined')
}
if (typeof obsItems[ paramNameArg ] === 'undefined') {
obsItems[ paramNameArg ] = objectArg
if (!(obsItems[ keyNameArg ])) {
obsItems[ keyNameArg ] = objectArg
} else {
console.log('object is already present, so add operation has failed.')
}
return obsItems[ paramNameArg ]
return obsItems[ keyNameArg ]
},
replace: function (paramNameArg, objectArg) {
obsItems[ paramNameArg ] = objectArg