now has a env vars feature
This commit is contained in:
@ -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
|
||||
}
|
||||
|
22
ts/smartenv.classes.environment.ts
Normal file
22
ts/smartenv.classes.environment.ts
Normal 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()
|
||||
};
|
||||
}
|
@ -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()
|
||||
};
|
||||
}
|
@ -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
56
ts/smartenv.export.ts
Normal 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
|
||||
}
|
@ -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
|
||||
|
Reference in New Issue
Block a user