From 46baf07551d66d12122e9b4316c0d84ab0dfa91a Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Fri, 21 Apr 2017 00:04:28 +0200 Subject: [PATCH] now has a env vars feature --- LICENSE | 2 +- dist/index.d.ts | 4 +- dist/index.js | 9 +-- ...d.ts => smartenv.classes.environment.d.ts} | 0 dist/smartenv.classes.environment.js | 18 ++++++ dist/smartenv.classes.helpers.js | 54 ------------------ dist/smartenv.classes.js | 18 ------ ....helpers.d.ts => smartenv.envhelpers.d.ts} | 0 dist/smartenv.envhelpers.js | 54 ++++++++++++++++++ dist/smartenv.environment.d.ts | 10 ---- dist/smartenv.environment.js | 35 ------------ dist/smartenv.export.d.ts | 15 +++++ dist/smartenv.export.js | 53 ++++++++++++++++++ dist/smartenv.objectstorage.js | 16 +++--- package.json | 2 +- test/test.ts | 41 +++++++++----- ts/index.ts | 3 +- ts/smartenv.classes.environment.ts | 22 ++++++++ ts/smartenv.classes.ts | 22 -------- ...sses.helpers.ts => smartenv.envhelpers.ts} | 0 ts/smartenv.environment.ts | 38 ------------- ts/smartenv.export.ts | 56 +++++++++++++++++++ ts/smartenv.objectstorage.ts | 14 ++--- yarn.lock | 19 ++----- 24 files changed, 275 insertions(+), 230 deletions(-) rename dist/{smartenv.classes.d.ts => smartenv.classes.environment.d.ts} (100%) create mode 100644 dist/smartenv.classes.environment.js delete mode 100644 dist/smartenv.classes.helpers.js delete mode 100644 dist/smartenv.classes.js rename dist/{smartenv.classes.helpers.d.ts => smartenv.envhelpers.d.ts} (100%) create mode 100644 dist/smartenv.envhelpers.js delete mode 100644 dist/smartenv.environment.d.ts delete mode 100644 dist/smartenv.environment.js create mode 100644 dist/smartenv.export.d.ts create mode 100644 dist/smartenv.export.js create mode 100644 ts/smartenv.classes.environment.ts delete mode 100644 ts/smartenv.classes.ts rename ts/{smartenv.classes.helpers.ts => smartenv.envhelpers.ts} (100%) delete mode 100644 ts/smartenv.environment.ts create mode 100644 ts/smartenv.export.ts diff --git a/LICENSE b/LICENSE index b8e36c1..cff2fa1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015 Push.Rocks +Copyright (c) 2015 Lossless GmbH Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/dist/index.d.ts b/dist/index.d.ts index 4711845..32a6668 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,3 +1,3 @@ -import { getEnv, printEnv } from './smartenv.environment'; +import { getEnv, printEnv, getEnvVars } from './smartenv.export'; import { obs } from './smartenv.objectstorage'; -export { getEnv, printEnv, obs }; +export { getEnv, getEnvVars, printEnv, obs }; diff --git a/dist/index.js b/dist/index.js index 8928085..c4b6553 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,8 +1,9 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const smartenv_environment_1 = require("./smartenv.environment"); -exports.getEnv = smartenv_environment_1.getEnv; -exports.printEnv = smartenv_environment_1.printEnv; +const smartenv_export_1 = require("./smartenv.export"); +exports.getEnv = smartenv_export_1.getEnv; +exports.printEnv = smartenv_export_1.printEnv; +exports.getEnvVars = smartenv_export_1.getEnvVars; const smartenv_objectstorage_1 = require("./smartenv.objectstorage"); exports.obs = smartenv_objectstorage_1.obs; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGlFQUF1RDtBQUtyRCxpQkFMTSw2QkFBTSxDQUtOO0FBQ04sbUJBTmMsK0JBQVEsQ0FNZDtBQUxWLHFFQUE4QztBQU01QyxjQU5PLDRCQUFHLENBTVAifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUE4RDtBQUs1RCxpQkFMTSx3QkFBTSxDQUtOO0FBRU4sbUJBUGMsMEJBQVEsQ0FPZDtBQURSLHFCQU53Qiw0QkFBVSxDQU14QjtBQUxaLHFFQUE4QztBQU81QyxjQVBPLDRCQUFHLENBT1AifQ== \ No newline at end of file diff --git a/dist/smartenv.classes.d.ts b/dist/smartenv.classes.environment.d.ts similarity index 100% rename from dist/smartenv.classes.d.ts rename to dist/smartenv.classes.environment.d.ts diff --git a/dist/smartenv.classes.environment.js b/dist/smartenv.classes.environment.js new file mode 100644 index 0000000..084cff8 --- /dev/null +++ b/dist/smartenv.classes.environment.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const helpers = require("./smartenv.envhelpers"); +class Environment { + 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(); + } + ; +} +exports.Environment = Environment; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuY2xhc3Nlcy5lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52LmNsYXNzZXMuZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBaUQ7QUFFakQ7SUFTRTtRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsQ0FBQztJQUFBLENBQUM7Q0FDSDtBQW5CRCxrQ0FtQkMifQ== \ No newline at end of file diff --git a/dist/smartenv.classes.helpers.js b/dist/smartenv.classes.helpers.js deleted file mode 100644 index e6762c4..0000000 --- a/dist/smartenv.classes.helpers.js +++ /dev/null @@ -1,54 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getEnvString = function () { - if (typeof window !== 'undefined') { - return 'browser'; - } - else if (typeof process !== 'undefined') { - return 'node'; - } -}; -exports.getUserAgentString = function () { - if (exports.isBrowser()) { - return navigator.userAgent; - } - else { - return undefined; - } -}; -exports.isNode = function () { - return exports.getEnvString() === 'node'; -}; -exports.getNodeVersion = function () { - return process.version; -}; -exports.isBrowser = function () { - return !exports.isNode(); -}; -exports.isCI = function () { - if (process.env.CI) { - return true; - } - else { - return false; - } - ; -}; -exports.isC9 = function () { - if (process.env.C9_HOSTNAME) { - return true; - } - else { - return false; - } -}; -exports.isTravis = function () { - if (process.env.TRAVIS) { - return true; - } - else { - return false; - } - ; -}; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuY2xhc3Nlcy5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRlbnYuY2xhc3Nlcy5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ1csUUFBQSxZQUFZLEdBQUc7SUFDeEIsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsTUFBTSxDQUFBO0lBQ2YsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVVLFFBQUEsa0JBQWtCLEdBQUc7SUFDOUIsRUFBRSxDQUFDLENBQUMsaUJBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQTtJQUM1QixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLENBQUMsU0FBUyxDQUFBO0lBQ2xCLENBQUM7QUFDSCxDQUFDLENBQUE7QUFFVSxRQUFBLE1BQU0sR0FBRztJQUNsQixNQUFNLENBQUMsb0JBQVksRUFBRSxLQUFLLE1BQU0sQ0FBQTtBQUNsQyxDQUFDLENBQUE7QUFFVSxRQUFBLGNBQWMsR0FBRztJQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQTtBQUN4QixDQUFDLENBQUE7QUFFVSxRQUFBLFNBQVMsR0FBRztJQUNyQixNQUFNLENBQUMsQ0FBQyxjQUFNLEVBQUUsQ0FBQTtBQUNsQixDQUFDLENBQUE7QUFFVSxRQUFBLElBQUksR0FBRztJQUNoQixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQTtJQUNiLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQUEsQ0FBQztBQUNKLENBQUMsQ0FBQTtBQUVVLFFBQUEsSUFBSSxHQUFHO0lBQ2hCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM1QixNQUFNLENBQUMsSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUNkLENBQUM7QUFDSCxDQUFDLENBQUE7QUFFVSxRQUFBLFFBQVEsR0FBRztJQUNwQixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQTtJQUNiLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQUEsQ0FBQztBQUNKLENBQUMsQ0FBQSJ9 \ No newline at end of file diff --git a/dist/smartenv.classes.js b/dist/smartenv.classes.js deleted file mode 100644 index 216962e..0000000 --- a/dist/smartenv.classes.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const helpers = require("./smartenv.classes.helpers"); -class Environment { - 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(); - } - ; -} -exports.Environment = Environment; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuY2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52LmNsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBc0Q7QUFFdEQ7SUFTSTtRQUNJLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDOUIsQ0FBQztJQUFBLENBQUM7Q0FDTDtBQW5CRCxrQ0FtQkMifQ== \ No newline at end of file diff --git a/dist/smartenv.classes.helpers.d.ts b/dist/smartenv.envhelpers.d.ts similarity index 100% rename from dist/smartenv.classes.helpers.d.ts rename to dist/smartenv.envhelpers.d.ts diff --git a/dist/smartenv.envhelpers.js b/dist/smartenv.envhelpers.js new file mode 100644 index 0000000..7028c9f --- /dev/null +++ b/dist/smartenv.envhelpers.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getEnvString = function () { + if (typeof window !== 'undefined') { + return 'browser'; + } + else if (typeof process !== 'undefined') { + return 'node'; + } +}; +exports.getUserAgentString = function () { + if (exports.isBrowser()) { + return navigator.userAgent; + } + else { + return undefined; + } +}; +exports.isNode = function () { + return exports.getEnvString() === 'node'; +}; +exports.getNodeVersion = function () { + return process.version; +}; +exports.isBrowser = function () { + return !exports.isNode(); +}; +exports.isCI = function () { + if (process.env.CI) { + return true; + } + else { + return false; + } + ; +}; +exports.isC9 = function () { + if (process.env.C9_HOSTNAME) { + return true; + } + else { + return false; + } +}; +exports.isTravis = function () { + if (process.env.TRAVIS) { + return true; + } + else { + return false; + } + ; +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuZW52aGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52LmVudmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDVyxRQUFBLFlBQVksR0FBRztJQUN4QixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7SUFDZixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRVUsUUFBQSxrQkFBa0IsR0FBRztJQUM5QixFQUFFLENBQUMsQ0FBQyxpQkFBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFBO0lBQzVCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sQ0FBQyxTQUFTLENBQUE7SUFDbEIsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVVLFFBQUEsTUFBTSxHQUFHO0lBQ2xCLE1BQU0sQ0FBQyxvQkFBWSxFQUFFLEtBQUssTUFBTSxDQUFBO0FBQ2xDLENBQUMsQ0FBQTtBQUVVLFFBQUEsY0FBYyxHQUFHO0lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFBO0FBQ3hCLENBQUMsQ0FBQTtBQUVVLFFBQUEsU0FBUyxHQUFHO0lBQ3JCLE1BQU0sQ0FBQyxDQUFDLGNBQU0sRUFBRSxDQUFBO0FBQ2xCLENBQUMsQ0FBQTtBQUVVLFFBQUEsSUFBSSxHQUFHO0lBQ2hCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFBQSxDQUFDO0FBQ0osQ0FBQyxDQUFBO0FBRVUsUUFBQSxJQUFJLEdBQUc7SUFDaEIsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVVLFFBQUEsUUFBUSxHQUFHO0lBQ3BCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFBQSxDQUFDO0FBQ0osQ0FBQyxDQUFBIn0= \ No newline at end of file diff --git a/dist/smartenv.environment.d.ts b/dist/smartenv.environment.d.ts deleted file mode 100644 index 03dbd71..0000000 --- a/dist/smartenv.environment.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import * as classes from './smartenv.classes'; -/** - * returns the environment - * @returns {Environment} - */ -export declare var getEnv: () => classes.Environment; -/** - * prints the environment to console - */ -export declare var printEnv: () => void; diff --git a/dist/smartenv.environment.js b/dist/smartenv.environment.js deleted file mode 100644 index 458c9e0..0000000 --- a/dist/smartenv.environment.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const classes = require("./smartenv.classes"); -const objectStorage = require("./smartenv.objectstorage"); -let environment; -let envDetermined = false; -/** - * returns the environment - * @returns {Environment} - */ -exports.getEnv = function () { - if (!envDetermined) { - environment = new classes.Environment(); - envDetermined = true; // ensure code above only runs once - } - ; - return environment; -}; -/** - * prints the environment to console - */ -exports.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())); -}; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGVudi5lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLDhDQUE2QztBQUM3QywwREFBeUQ7QUFHekQsSUFBSSxXQUFnQyxDQUFBO0FBQ3BDLElBQUksYUFBYSxHQUFZLEtBQUssQ0FBQTtBQUVsQzs7O0dBR0c7QUFDUSxRQUFBLE1BQU0sR0FBRztJQUNoQixFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDakIsV0FBVyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3ZDLGFBQWEsR0FBRyxJQUFJLENBQUEsQ0FBQyxtQ0FBbUM7SUFDNUQsQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUMsV0FBVyxDQUFBO0FBQ3RCLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ1MsUUFBQSxRQUFRLEdBQUc7SUFDbkIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQzlCLElBQUksZUFBZSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtRQUN4RCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLEdBQUcsZUFBZSxDQUFDLENBQUE7SUFDL0csQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQywyRUFBMkUsQ0FBQyxDQUFBO0lBQ3hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ3ZFLENBQUMsQ0FBQSJ9 \ No newline at end of file diff --git a/dist/smartenv.export.d.ts b/dist/smartenv.export.d.ts new file mode 100644 index 0000000..09bd7e5 --- /dev/null +++ b/dist/smartenv.export.d.ts @@ -0,0 +1,15 @@ +import * as classes from './smartenv.classes.environment'; +/** + * returns the environment + * @returns {Environment} + */ +export declare let getEnv: () => classes.Environment; +/** + * prints the environment to console + */ +export declare let printEnv: () => void; +export interface IEnvObject { + name: string; + value: string; +} +export declare let getEnvVars: (regexArg: RegExp) => Promise; diff --git a/dist/smartenv.export.js b/dist/smartenv.export.js new file mode 100644 index 0000000..6a8d58d --- /dev/null +++ b/dist/smartenv.export.js @@ -0,0 +1,53 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const classes = require("./smartenv.classes.environment"); +const objectStorage = require("./smartenv.objectstorage"); +let environment = null; +/** + * returns the environment + * @returns {Environment} + */ +exports.getEnv = function () { + if (!environment) { + environment = new classes.Environment(); + } + ; + return environment; +}; +/** + * prints the environment to console + */ +exports.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())); +}; +exports.getEnvVars = (regexArg) => __awaiter(this, void 0, void 0, function* () { + let resultArray = []; + for (let key in process.env) { + if (regexArg.test(key)) { + resultArray.push({ + name: key, + value: process.env[key] + }); + } + } + return resultArray; +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuZXhwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRlbnYuZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFJQSwwREFBeUQ7QUFDekQsMERBQXlEO0FBR3pELElBQUksV0FBVyxHQUF3QixJQUFJLENBQUE7QUFFM0M7OztHQUdHO0FBQ1EsUUFBQSxNQUFNLEdBQUc7SUFDbEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUN6QyxDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxXQUFXLENBQUE7QUFDcEIsQ0FBQyxDQUFBO0FBSUQ7O0dBRUc7QUFDUSxRQUFBLFFBQVEsR0FBRztJQUNwQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDOUIsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFBO1FBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsR0FBRywyQkFBMkIsR0FBRyxlQUFlLENBQUMsQ0FBQTtJQUM3RyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJFQUEyRSxDQUFDLENBQUE7SUFDeEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDckUsQ0FBQyxDQUFBO0FBT1UsUUFBQSxVQUFVLEdBQUcsQ0FBTyxRQUFnQjtJQUM3QyxJQUFJLFdBQVcsR0FBaUIsRUFBRSxDQUFBO0lBQ2xDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO2FBQ3hCLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQTtBQUNwQixDQUFDLENBQUEsQ0FBQSJ9 \ No newline at end of file diff --git a/dist/smartenv.objectstorage.js b/dist/smartenv.objectstorage.js index e1d4d29..fb1ce5c 100644 --- a/dist/smartenv.objectstorage.js +++ b/dist/smartenv.objectstorage.js @@ -6,21 +6,21 @@ exports.obsItems = {}; * Objectstorage allows easy sharing of objects within node */ exports.obs = { - 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 exports.obsItems[paramNameArg] === 'undefined') { - exports.obsItems[paramNameArg] = objectArg; + if (!(exports.obsItems[keyNameArg])) { + exports.obsItems[keyNameArg] = objectArg; } else { console.log('object is already present, so add operation has failed.'); } - return exports.obsItems[paramNameArg]; + return exports.obsItems[keyNameArg]; }, replace: function (paramNameArg, objectArg) { exports.obsItems[paramNameArg] = objectArg; @@ -44,4 +44,4 @@ exports.obs = { return exports.obsItems; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYub2JqZWN0c3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBOEM7QUFFbkMsUUFBQSxRQUFRLEdBQVEsRUFBRSxDQUFBO0FBRTdCOztHQUVHO0FBQ1EsUUFBQSxHQUFHLEdBQVE7SUFDcEIsR0FBRyxFQUFFLFVBQVUsWUFBWSxHQUFHLFdBQVcsRUFBRSxTQUFTLEdBQUcsV0FBVztRQUNoRSxFQUFFLENBQUMsQ0FBQyxZQUFZLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUE7WUFDckMsTUFBTSxDQUFBO1FBQ1IsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUN2QyxDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsT0FBTyxnQkFBUSxDQUFFLFlBQVksQ0FBRSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDcEQsZ0JBQVEsQ0FBRSxZQUFZLENBQUUsR0FBRyxTQUFTLENBQUE7UUFDdEMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyx5REFBeUQsQ0FBQyxDQUFBO1FBQ3hFLENBQUM7UUFDRCxNQUFNLENBQUMsZ0JBQVEsQ0FBRSxZQUFZLENBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLFVBQVUsWUFBWSxFQUFFLFNBQVM7UUFDeEMsZ0JBQVEsQ0FBRSxZQUFZLENBQUUsR0FBRyxTQUFTLENBQUE7SUFDdEMsQ0FBQztJQUNELEtBQUssRUFBRSxVQUFVLFlBQVksRUFBRSxTQUFTO1FBQ3RDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLGdCQUFRLENBQUUsWUFBWSxDQUFFLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELGdCQUFRLENBQUUsWUFBWSxDQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQVEsQ0FBRSxZQUFZLENBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUN2RixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLHFEQUFxRCxDQUFDLENBQUE7UUFDcEUsQ0FBQztJQUNILENBQUM7SUFDRCxHQUFHLEVBQUUsVUFBVSxPQUFPO1FBQ3BCLE1BQU0sQ0FBQyxnQkFBUSxDQUFFLE9BQU8sQ0FBRSxDQUFBO0lBQzVCLENBQUM7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLENBQUMsZ0JBQVEsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsV0FBVyxFQUFFLFVBQVUsUUFBUTtRQUM3QixnQkFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDcEQsTUFBTSxDQUFDLGdCQUFRLENBQUE7SUFDakIsQ0FBQztDQUNGLENBQUEifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYub2JqZWN0c3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBOEM7QUFFbkMsUUFBQSxRQUFRLEdBQVEsRUFBRSxDQUFBO0FBRTdCOztHQUVHO0FBQ1EsUUFBQSxHQUFHLEdBQVE7SUFDcEIsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVM7UUFDekIsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUNuQyxNQUFNLENBQUE7UUFDUixDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQVEsQ0FBRSxVQUFVLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixnQkFBUSxDQUFFLFVBQVUsQ0FBRSxHQUFHLFNBQVMsQ0FBQTtRQUNwQyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLHlEQUF5RCxDQUFDLENBQUE7UUFDeEUsQ0FBQztRQUNELE1BQU0sQ0FBQyxnQkFBUSxDQUFFLFVBQVUsQ0FBRSxDQUFBO0lBQy9CLENBQUM7SUFDRCxPQUFPLEVBQUUsVUFBVSxZQUFZLEVBQUUsU0FBUztRQUN4QyxnQkFBUSxDQUFFLFlBQVksQ0FBRSxHQUFHLFNBQVMsQ0FBQTtJQUN0QyxDQUFDO0lBQ0QsS0FBSyxFQUFFLFVBQVUsWUFBWSxFQUFFLFNBQVM7UUFDdEMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sZ0JBQVEsQ0FBRSxZQUFZLENBQUUsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsZ0JBQVEsQ0FBRSxZQUFZLENBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBUSxDQUFFLFlBQVksQ0FBRSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBQ3ZGLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMscURBQXFELENBQUMsQ0FBQTtRQUNwRSxDQUFDO0lBQ0gsQ0FBQztJQUNELEdBQUcsRUFBRSxVQUFVLE9BQU87UUFDcEIsTUFBTSxDQUFDLGdCQUFRLENBQUUsT0FBTyxDQUFFLENBQUE7SUFDNUIsQ0FBQztJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sQ0FBQyxnQkFBUSxDQUFBO0lBQ2pCLENBQUM7SUFDRCxXQUFXLEVBQUUsVUFBVSxRQUFRO1FBQzdCLGdCQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUNwRCxNQUFNLENBQUMsZ0JBQVEsQ0FBQTtJQUNqQixDQUFDO0NBQ0YsQ0FBQSJ9 \ No newline at end of file diff --git a/package.json b/package.json index 338bf04..27df077 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "keywords": [ "environment" ], - "author": "Smart Coordination GmbH (https://push.rocks)", + "author": "Lossless GmbH (https://lossless.com)", "license": "MIT", "bugs": { "url": "https://gitlab.com/pushrocks/smartenv/issues" diff --git a/test/test.ts b/test/test.ts index 15ab581..b56c10c 100644 --- a/test/test.ts +++ b/test/test.ts @@ -3,25 +3,36 @@ import * as beautylog from 'beautylog' import { tap, expect } from 'tapbundle' -smartenv.printEnv() +tap.test('should print env', async () => { + smartenv.printEnv() +}).catch(tap.threw) // test smartenv.obs.add -smartenv.obs.add('myTestObject',{key1:'Peter'}) -smartenv.obs.add('myTestObject',{key1:'Klaus'}) // now trying to add a second -smartenv.printEnv() -beautylog.log(smartenv.obs.get('myTestObject').key1) // this should be Peter +tap.test('obs add something', async () => { + smartenv.obs.add('myTestObject', { key1: 'Peter' }) + smartenv.obs.add('myTestObject', { key1: 'Klaus' }) // now trying to add a second + return expect(smartenv.obs.get('myTestObject').key1).to.equal('Peter') +}) // test smartenv.obs.replace -smartenv.obs.replace('myTestObject',{key1:'Klaus'}) -beautylog.log(smartenv.obs.get('myTestObject').key1) // this should be Klaus +tap.test('', async () => { + smartenv.obs.replace('myTestObject', { key1: 'Klaus' }) + expect(smartenv.obs.get('myTestObject').key1).to.equal('Klaus') +}) -// test smartenv.obs.merge -smartenv.obs.merge('myTestObject',{key2:'Peter'}) -beautylog.log(smartenv.obs.get('myTestObject').key1 + smartenv.obs.get('myTestObject').key2) -// this should be KlausPeter +tap.test('should merge things', async () => { + smartenv.obs.merge('myTestObject', { key2: 'Peter' }) + expect(smartenv.obs.get('myTestObject').key1).to.equal('Klaus') + return expect(smartenv.obs.get('myTestObject').key2).to.equal('Peter') +}) -let key2 = 'hello' -smartenv.obs.get('myTestObject').key2 = key2 -beautylog.log(smartenv.obs.get('myTestObject').key2) +tap.test('set via get', async () => { + smartenv.obs.get('myTestObject').key2 = 'hello' + return expect(smartenv.obs.get('myTestObject').key2).to.equal('hello') +}) -beautylog.success('Success!') +tap.test('should get regex env array', async () => { + process.env.CUSTOM = 'some' + let resultArray = await smartenv.getEnvVars(/CUSTOM/) + return expect(resultArray).to.be.length(1) +}) diff --git a/ts/index.ts b/ts/index.ts index 825ff76..2fe10a9 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -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 } diff --git a/ts/smartenv.classes.environment.ts b/ts/smartenv.classes.environment.ts new file mode 100644 index 0000000..f5a94c7 --- /dev/null +++ b/ts/smartenv.classes.environment.ts @@ -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() + }; +} diff --git a/ts/smartenv.classes.ts b/ts/smartenv.classes.ts deleted file mode 100644 index dccb99d..0000000 --- a/ts/smartenv.classes.ts +++ /dev/null @@ -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() - }; -} diff --git a/ts/smartenv.classes.helpers.ts b/ts/smartenv.envhelpers.ts similarity index 100% rename from ts/smartenv.classes.helpers.ts rename to ts/smartenv.envhelpers.ts diff --git a/ts/smartenv.environment.ts b/ts/smartenv.environment.ts deleted file mode 100644 index 85f3a3e..0000000 --- a/ts/smartenv.environment.ts +++ /dev/null @@ -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())) -} diff --git a/ts/smartenv.export.ts b/ts/smartenv.export.ts new file mode 100644 index 0000000..70cc765 --- /dev/null +++ b/ts/smartenv.export.ts @@ -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 +} diff --git a/ts/smartenv.objectstorage.ts b/ts/smartenv.objectstorage.ts index 15bb8ab..f3c2454 100644 --- a/ts/smartenv.objectstorage.ts +++ b/ts/smartenv.objectstorage.ts @@ -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 diff --git a/yarn.lock b/yarn.lock index 011ed3c..7dfea77 100644 --- a/yarn.lock +++ b/yarn.lock @@ -27,10 +27,6 @@ version "0.0.27" resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780" -"@types/q@0.x.x": - version "0.0.34" - resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.34.tgz#e5d3a54e7a56309d904cdf1dc34f61ac595fae2e" - align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -968,7 +964,7 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0: +lodash@^4.17.4, lodash@^4.2.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -1264,10 +1260,6 @@ punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -q@^1.4.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" - qs@~6.3.0: version "6.3.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" @@ -1443,12 +1435,11 @@ smartchai@^1.0.3: chai-string "^1.3.0" smartenv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/smartenv/-/smartenv-2.0.0.tgz#ede4e2044efcf9bec318388bb1dab53024ee3d16" + version "2.0.4" + resolved "https://registry.yarnpkg.com/smartenv/-/smartenv-2.0.4.tgz#fae4a8f1a0e1c0a7a5f4acc93942695b57076521" dependencies: - "@types/q" "0.x.x" - lodash "^4.17.2" - q "^1.4.1" + lodash "^4.17.4" + smartq "^1.1.1" typings-global "^1.0.14" smartq@^1.1.1: