diff --git a/dist/smartenv.classes.helpers.js b/dist/smartenv.classes.helpers.js
new file mode 100644
index 0000000..fe26c28
--- /dev/null
+++ b/dist/smartenv.classes.helpers.js
@@ -0,0 +1,53 @@
+#!/usr/bin/env node
+
+///
+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 () {
+ if (exports.getEnvString() === "node") {
+ return true;
+ }
+ else {
+ return false;
+ }
+};
+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.isTravis = function () {
+ if (process.env.TRAVIS) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ ;
+};
+
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmNsYXNzZXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQ0FBMEM7QUFFL0Isb0JBQVksR0FBRztJQUN0QixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDbEIsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVTLDBCQUFrQixHQUFHO0lBQzVCLEVBQUUsQ0FBQSxDQUFDLGlCQUFTLEVBQUUsQ0FBQyxDQUFBLENBQUM7UUFDWixNQUFNLENBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFUyxjQUFNLEdBQUc7SUFDaEIsRUFBRSxDQUFDLENBQUMsb0JBQVksRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFBLENBQUM7UUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFUyxzQkFBYyxHQUFHO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0FBQzNCLENBQUMsQ0FBQztBQUVTLGlCQUFTLEdBQUc7SUFDbkIsTUFBTSxDQUFDLENBQUMsY0FBTSxFQUFFLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRVMsWUFBSSxHQUFHO0lBQ2QsRUFBRSxDQUFBLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFBQSxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRVMsZ0JBQVEsR0FBRztJQUNsQixFQUFFLENBQUEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7UUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFBQSxDQUFDO0FBQ04sQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0ZW52LmNsYXNzZXMuaGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL21haW4uZC50c1wiIC8+XG5cbmV4cG9ydCB2YXIgZ2V0RW52U3RyaW5nID0gZnVuY3Rpb24oKTpzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiBcImJyb3dzZXJcIjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiBcIm5vZGVcIjtcbiAgICB9XG59O1xuXG5leHBvcnQgdmFyIGdldFVzZXJBZ2VudFN0cmluZyA9IGZ1bmN0aW9uKCk6c3RyaW5ne1xuICAgIGlmKGlzQnJvd3NlcigpKXtcbiAgICAgICAgcmV0dXJuICBuYXZpZ2F0b3IudXNlckFnZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufTtcblxuZXhwb3J0IHZhciBpc05vZGUgPSBmdW5jdGlvbigpOmJvb2xlYW4ge1xuICAgIGlmIChnZXRFbnZTdHJpbmcoKSA9PT0gXCJub2RlXCIpe1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcblxuZXhwb3J0IHZhciBnZXROb2RlVmVyc2lvbiA9IGZ1bmN0aW9uKCk6c3RyaW5nIHtcbiAgICByZXR1cm4gcHJvY2Vzcy52ZXJzaW9uO1xufTtcblxuZXhwb3J0IHZhciBpc0Jyb3dzZXIgPSBmdW5jdGlvbigpOmJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNOb2RlKCk7XG59O1xuXG5leHBvcnQgdmFyIGlzQ0kgPSBmdW5jdGlvbigpe1xuICAgIGlmKHByb2Nlc3MuZW52LkNJKXtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG59O1xuXG5leHBvcnQgdmFyIGlzVHJhdmlzID0gZnVuY3Rpb24oKXtcbiAgICBpZihwcm9jZXNzLmVudi5UUkFWSVMpe1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbn07Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
diff --git a/dist/smartenv.classes.js b/dist/smartenv.classes.js
index 89083f5..03acb87 100644
--- a/dist/smartenv.classes.js
+++ b/dist/smartenv.classes.js
@@ -1,25 +1,20 @@
#!/usr/bin/env node
///
+var helpers = require("./smartenv.classes.helpers");
var Environment = (function () {
- function Environment(runtimeEnvArg, userAgentArg) {
- if (userAgentArg === void 0) { userAgentArg = "undefined"; }
- this.runtimeEnv = runtimeEnvArg;
- this.userAgent = userAgentArg;
- if (runtimeEnvArg == "node") {
- this.isBrowser = false;
- this.isNode = true;
- this.nodeVersion = process.version;
- }
- else if (runtimeEnvArg == "browser") {
- this.isBrowser = true;
- this.isNode = false;
- this.nodeVersion = "undefined";
- }
+ function Environment() {
+ 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();
}
;
return Environment;
})();
exports.Environment = Environment;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmNsYXNzZXMudHMiXSwibmFtZXMiOlsiRW52aXJvbm1lbnQiLCJFbnZpcm9ubWVudC5jb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDO0lBTUlBLHFCQUFZQSxhQUFvQkEsRUFBQ0EsWUFBaUNBO1FBQWpDQyw0QkFBaUNBLEdBQWpDQSwwQkFBaUNBO1FBQzlEQSxJQUFJQSxDQUFDQSxVQUFVQSxHQUFHQSxhQUFhQSxDQUFDQTtRQUNoQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsR0FBR0EsWUFBWUEsQ0FBQ0E7UUFDOUJBLEVBQUVBLENBQUFBLENBQUNBLGFBQWFBLElBQUlBLE1BQU1BLENBQUNBLENBQUFBLENBQUNBO1lBQ3hCQSxJQUFJQSxDQUFDQSxTQUFTQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUN2QkEsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDbkJBLElBQUlBLENBQUNBLFdBQVdBLEdBQUdBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBO1FBQ3ZDQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxhQUFhQSxJQUFJQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNwQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDdEJBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBO1lBQ3BCQSxJQUFJQSxDQUFDQSxXQUFXQSxHQUFHQSxXQUFXQSxDQUFDQTtRQUNuQ0EsQ0FBQ0E7SUFDTEEsQ0FBQ0E7O0lBQ0xELGtCQUFDQTtBQUFEQSxDQW5CQSxBQW1CQ0EsSUFBQTtBQW5CWSxtQkFBVyxjQW1CdkIsQ0FBQSIsImZpbGUiOiJzbWFydGVudi5jbGFzc2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudCB7XG4gICAgcHVibGljIHJ1bnRpbWVFbnY6c3RyaW5nO1xuICAgIHB1YmxpYyB1c2VyQWdlbnQ6c3RyaW5nO1xuICAgIHB1YmxpYyBub2RlVmVyc2lvbjpzdHJpbmc7XG4gICAgcHVibGljIGlzQnJvd3Nlcjpib29sZWFuO1xuICAgIHB1YmxpYyBpc05vZGU6Ym9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihydW50aW1lRW52QXJnOnN0cmluZyx1c2VyQWdlbnRBcmc6c3RyaW5nID0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICB0aGlzLnJ1bnRpbWVFbnYgPSBydW50aW1lRW52QXJnO1xuICAgICAgICB0aGlzLnVzZXJBZ2VudCA9IHVzZXJBZ2VudEFyZztcbiAgICAgICAgaWYocnVudGltZUVudkFyZyA9PSBcIm5vZGVcIil7XG4gICAgICAgICAgICB0aGlzLmlzQnJvd3NlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc05vZGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub2RlVmVyc2lvbiA9IHByb2Nlc3MudmVyc2lvbjtcbiAgICAgICAgfSBlbHNlIGlmIChydW50aW1lRW52QXJnID09IFwiYnJvd3NlclwiKSB7XG4gICAgICAgICAgICB0aGlzLmlzQnJvd3NlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzTm9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5ub2RlVmVyc2lvbiA9IFwidW5kZWZpbmVkXCI7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmNsYXNzZXMudHMiXSwibmFtZXMiOlsiRW52aXJvbm1lbnQiLCJFbnZpcm9ubWVudC5jb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBRTFDLElBQU8sT0FBTyxXQUFXLDRCQUE0QixDQUFDLENBQUM7QUFDdkQ7SUFRSUE7UUFDSUMsSUFBSUEsQ0FBQ0EsVUFBVUEsR0FBR0EsT0FBT0EsQ0FBQ0EsWUFBWUEsRUFBRUEsQ0FBQ0E7UUFDekNBLElBQUlBLENBQUNBLFNBQVNBLEdBQUdBLE9BQU9BLENBQUNBLFNBQVNBLEVBQUVBLENBQUNBO1FBQ3JDQSxJQUFJQSxDQUFDQSxTQUFTQSxHQUFHQSxPQUFPQSxDQUFDQSxrQkFBa0JBLEVBQUVBLENBQUNBO1FBQzlDQSxJQUFJQSxDQUFDQSxNQUFNQSxHQUFHQSxPQUFPQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQTtRQUMvQkEsSUFBSUEsQ0FBQ0EsV0FBV0EsR0FBR0EsT0FBT0EsQ0FBQ0EsY0FBY0EsRUFBRUEsQ0FBQ0E7UUFDNUNBLElBQUlBLENBQUNBLElBQUlBLEdBQUdBLE9BQU9BLENBQUNBLElBQUlBLEVBQUVBLENBQUNBO1FBQzNCQSxJQUFJQSxDQUFDQSxRQUFRQSxHQUFHQSxPQUFPQSxDQUFDQSxRQUFRQSxFQUFFQSxDQUFDQTtJQUN2Q0EsQ0FBQ0E7O0lBQ0xELGtCQUFDQTtBQUFEQSxDQWpCQSxBQWlCQ0EsSUFBQTtBQWpCWSxtQkFBVyxjQWlCdkIsQ0FBQSIsImZpbGUiOiJzbWFydGVudi5jbGFzc2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cblxuaW1wb3J0IGhlbHBlcnMgPSByZXF1aXJlKFwiLi9zbWFydGVudi5jbGFzc2VzLmhlbHBlcnNcIik7XG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnQge1xuICAgIHJ1bnRpbWVFbnY6c3RyaW5nO1xuICAgIGlzQnJvd3Nlcjpib29sZWFuO1xuICAgIHVzZXJBZ2VudDpzdHJpbmc7XG4gICAgaXNOb2RlOmJvb2xlYW47XG4gICAgbm9kZVZlcnNpb246c3RyaW5nO1xuICAgIGlzQ0k6Ym9vbGVhbjtcbiAgICBpc1RyYXZpczpib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJ1bnRpbWVFbnYgPSBoZWxwZXJzLmdldEVudlN0cmluZygpO1xuICAgICAgICB0aGlzLmlzQnJvd3NlciA9IGhlbHBlcnMuaXNCcm93c2VyKCk7XG4gICAgICAgIHRoaXMudXNlckFnZW50ID0gaGVscGVycy5nZXRVc2VyQWdlbnRTdHJpbmcoKTtcbiAgICAgICAgdGhpcy5pc05vZGUgPSBoZWxwZXJzLmlzTm9kZSgpO1xuICAgICAgICB0aGlzLm5vZGVWZXJzaW9uID0gaGVscGVycy5nZXROb2RlVmVyc2lvbigpO1xuICAgICAgICB0aGlzLmlzQ0kgPSBoZWxwZXJzLmlzQ0koKTtcbiAgICAgICAgdGhpcy5pc1RyYXZpcyA9IGhlbHBlcnMuaXNUcmF2aXMoKTtcbiAgICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
diff --git a/dist/smartenv.environment.js b/dist/smartenv.environment.js
index 2e05201..3c4ad7d 100644
--- a/dist/smartenv.environment.js
+++ b/dist/smartenv.environment.js
@@ -15,18 +15,7 @@ var envDetermined = false;
*/
var getEnv = function () {
if (!envDetermined) {
- (function () {
- var localRunTimeEnv = "undefined";
- var localUserAgent = "undefined";
- if (typeof window !== "undefined") {
- localRunTimeEnv = 'browser';
- localUserAgent = navigator.userAgent;
- }
- else if (typeof process !== "undefined") {
- localRunTimeEnv = 'node';
- }
- environment = new classes.Environment(localRunTimeEnv, localUserAgent);
- })();
+ environment = new classes.Environment();
envDetermined = true; // ensure code above only runs once
}
;
@@ -53,4 +42,4 @@ exports.init = function (objectArg) {
objectArg.printEnv = printEnv;
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQztBQUMxQzs7R0FFRztBQUNILElBQU8sT0FBTyxXQUFXLG9CQUFvQixDQUFDLENBQUM7QUFDL0MsSUFBTyxPQUFPLFdBQVcsb0JBQW9CLENBQUMsQ0FBQztBQUMvQyxJQUFPLGFBQWEsV0FBVywwQkFBMEIsQ0FBQyxDQUFDO0FBRzNELElBQUksV0FBK0IsQ0FBQztBQUNwQyxJQUFJLGFBQWEsR0FBVyxLQUFLLENBQUM7QUFFbEM7OztHQUdHO0FBQ0gsSUFBSSxNQUFNLEdBQUc7SUFDVCxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDakIsQ0FBQztZQUNHLElBQUksZUFBZSxHQUFHLFdBQVcsQ0FBQztZQUNsQyxJQUFJLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDakMsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsZUFBZSxHQUFHLFNBQVMsQ0FBQztnQkFDNUIsY0FBYyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFDekMsQ0FBQztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxlQUFlLEdBQUcsTUFBTSxDQUFDO1lBQzdCLENBQUM7WUFDRCxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBQyxjQUFjLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ0wsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDLG1DQUFtQztJQUM3RCxDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxXQUFXLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxJQUFLLFFBQVEsR0FBRztJQUNaLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEMsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3pELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0lBQ25HLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQztBQUVTLFlBQUksR0FBRyxVQUFTLFNBQVM7SUFDaEMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDMUIsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0ZW52LmVudmlyb25tZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbi8qKlxuICogRGVhbHMgd2l0aCB0aGUgZW52aXJvbm1lbnQgdGhlIGN1cnJlbnQgSlMgc2NyaXB0IGlzIHJ1bm5pbmcgaW4uXG4gKi9cbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRlbnYucGx1Z2luc1wiKTtcbmltcG9ydCBjbGFzc2VzID0gcmVxdWlyZShcIi4vc21hcnRlbnYuY2xhc3Nlc1wiKTtcbmltcG9ydCBvYmplY3RTdG9yYWdlID0gcmVxdWlyZShcIi4vc21hcnRlbnYub2JqZWN0c3RvcmFnZVwiKTtcblxuXG52YXIgZW52aXJvbm1lbnQ6Y2xhc3Nlcy5FbnZpcm9ubWVudDtcbnZhciBlbnZEZXRlcm1pbmVkOmJvb2xlYW4gPSBmYWxzZTtcblxuLyoqXG4gKiByZXR1cm5zIHRoZSBlbnZpcm9ubWVudFxuICogQHJldHVybnMge0Vudmlyb25tZW50fVxuICovXG52YXIgZ2V0RW52ID0gZnVuY3Rpb24oKXtcbiAgICBpZiAoIWVudkRldGVybWluZWQpIHtcbiAgICAgICAgKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGxvY2FsUnVuVGltZUVudiA9IFwidW5kZWZpbmVkXCI7XG4gICAgICAgICAgICB2YXIgbG9jYWxVc2VyQWdlbnQgPSBcInVuZGVmaW5lZFwiO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICBsb2NhbFJ1blRpbWVFbnYgPSAnYnJvd3Nlcic7XG4gICAgICAgICAgICAgICAgbG9jYWxVc2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgIGxvY2FsUnVuVGltZUVudiA9ICdub2RlJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudmlyb25tZW50ID0gbmV3IGNsYXNzZXMuRW52aXJvbm1lbnQobG9jYWxSdW5UaW1lRW52LGxvY2FsVXNlckFnZW50KTtcbiAgICAgICAgfSkoKTtcbiAgICAgICAgZW52RGV0ZXJtaW5lZCA9IHRydWU7IC8vIGVuc3VyZSBjb2RlIGFib3ZlIG9ubHkgcnVucyBvbmNlXG4gICAgfTtcbiAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG59O1xuXG4vKipcbiAqIHByaW50cyB0aGUgZW52aXJvbm1lbnQgdG8gY29uc29sZVxuICovXG52YXIgIHByaW50RW52ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuZ2V0RW52KCkuaXNOb2RlKSB7XG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLm9rKFwicnVubmluZyBvbiBOT0RFXCIpO1xuICAgICAgICB2YXIgc21hcnRlbnZWZXJzaW9uID0gcmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKS52ZXJzaW9uO1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJub2RlIHZlcnNpb24gaXMgXCIgKyB0aGlzLmdldEVudigpLm5vZGVWZXJzaW9uICsgXCIgYW5kIHNtYXJ0ZW52IHZlcnNpb24gaXMgXCIgKyBzbWFydGVudlZlcnNpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLm9rKFwicnVubmluZyBvbiBCUk9XU0VSXCIpO1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJicm93c2VyIGlzIFwiICsgdGhpcy5nZXRFbnYoKS51c2VyQWdlbnQpO1xuICAgIH1cbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJ0aGUgc21hcnRlbnYgcmVnaXN0cmF0aW9uIHN0b3JlIGN1cnJlbnRseSBob2xkcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XCIpO1xuICAgIGNvbnNvbGUubG9nKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdFN0b3JhZ2Uub2JzLmdldEFsbCgpKSk7XG59O1xuXG5leHBvcnQgdmFyIGluaXQgPSBmdW5jdGlvbihvYmplY3RBcmcpIHtcbiAgICBvYmplY3RBcmcuZ2V0RW52ID0gZ2V0RW52O1xuICAgIG9iamVjdEFyZy5wcmludEVudiA9IHByaW50RW52O1xufTsiXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQztBQUMxQzs7R0FFRztBQUNILElBQU8sT0FBTyxXQUFXLG9CQUFvQixDQUFDLENBQUM7QUFDL0MsSUFBTyxPQUFPLFdBQVcsb0JBQW9CLENBQUMsQ0FBQztBQUMvQyxJQUFPLGFBQWEsV0FBVywwQkFBMEIsQ0FBQyxDQUFDO0FBRzNELElBQUksV0FBK0IsQ0FBQztBQUNwQyxJQUFJLGFBQWEsR0FBVyxLQUFLLENBQUM7QUFFbEM7OztHQUdHO0FBQ0gsSUFBSSxNQUFNLEdBQUc7SUFDVCxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDakIsV0FBVyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxtQ0FBbUM7SUFDN0QsQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUMsV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsSUFBSyxRQUFRLEdBQUc7SUFDWixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hDLElBQUksZUFBZSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN6RCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxHQUFHLDJCQUEyQixHQUFHLGVBQWUsQ0FBQyxDQUFDO0lBQzFILENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMkVBQTJFLENBQUMsQ0FBQztJQUNuRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUM7QUFFUyxZQUFJLEdBQUcsVUFBUyxTQUFTO0lBQ2hDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQzFCLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ2xDLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGVudi5lbnZpcm9ubWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL21haW4uZC50c1wiIC8+XG4vKipcbiAqIERlYWxzIHdpdGggdGhlIGVudmlyb25tZW50IHRoZSBjdXJyZW50IEpTIHNjcmlwdCBpcyBydW5uaW5nIGluLlxuICovXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LnBsdWdpbnNcIik7XG5pbXBvcnQgY2xhc3NlcyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LmNsYXNzZXNcIik7XG5pbXBvcnQgb2JqZWN0U3RvcmFnZSA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52Lm9iamVjdHN0b3JhZ2VcIik7XG5cblxudmFyIGVudmlyb25tZW50OmNsYXNzZXMuRW52aXJvbm1lbnQ7XG52YXIgZW52RGV0ZXJtaW5lZDpib29sZWFuID0gZmFsc2U7XG5cbi8qKlxuICogcmV0dXJucyB0aGUgZW52aXJvbm1lbnRcbiAqIEByZXR1cm5zIHtFbnZpcm9ubWVudH1cbiAqL1xudmFyIGdldEVudiA9IGZ1bmN0aW9uKCl7XG4gICAgaWYgKCFlbnZEZXRlcm1pbmVkKSB7XG4gICAgICAgIGVudmlyb25tZW50ID0gbmV3IGNsYXNzZXMuRW52aXJvbm1lbnQoKTtcbiAgICAgICAgZW52RGV0ZXJtaW5lZCA9IHRydWU7IC8vIGVuc3VyZSBjb2RlIGFib3ZlIG9ubHkgcnVucyBvbmNlXG4gICAgfTtcbiAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG59O1xuXG4vKipcbiAqIHByaW50cyB0aGUgZW52aXJvbm1lbnQgdG8gY29uc29sZVxuICovXG52YXIgIHByaW50RW52ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuZ2V0RW52KCkuaXNOb2RlKSB7XG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLm9rKFwicnVubmluZyBvbiBOT0RFXCIpO1xuICAgICAgICB2YXIgc21hcnRlbnZWZXJzaW9uID0gcmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKS52ZXJzaW9uO1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJub2RlIHZlcnNpb24gaXMgXCIgKyB0aGlzLmdldEVudigpLm5vZGVWZXJzaW9uICsgXCIgYW5kIHNtYXJ0ZW52IHZlcnNpb24gaXMgXCIgKyBzbWFydGVudlZlcnNpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLm9rKFwicnVubmluZyBvbiBCUk9XU0VSXCIpO1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJicm93c2VyIGlzIFwiICsgdGhpcy5nZXRFbnYoKS51c2VyQWdlbnQpO1xuICAgIH1cbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJ0aGUgc21hcnRlbnYgcmVnaXN0cmF0aW9uIHN0b3JlIGN1cnJlbnRseSBob2xkcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XCIpO1xuICAgIGNvbnNvbGUubG9nKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdFN0b3JhZ2Uub2JzLmdldEFsbCgpKSk7XG59O1xuXG5leHBvcnQgdmFyIGluaXQgPSBmdW5jdGlvbihvYmplY3RBcmcpIHtcbiAgICBvYmplY3RBcmcuZ2V0RW52ID0gZ2V0RW52O1xuICAgIG9iamVjdEFyZy5wcmludEVudiA9IHByaW50RW52O1xufTsiXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
diff --git a/dist/smartenv.plugins.js b/dist/smartenv.plugins.js
index 60ba851..79c4c0f 100644
--- a/dist/smartenv.plugins.js
+++ b/dist/smartenv.plugins.js
@@ -3,8 +3,9 @@
///
var plugins = {
beautylog: require("beautylog"),
+ Q: require("q"),
_: require("lodash")
};
module.exports = plugins;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLElBQUksT0FBTyxHQUFHO0lBQ1YsU0FBUyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDL0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLGlCQUFTLE9BQU8sQ0FBQyIsImZpbGUiOiJzbWFydGVudi5wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbnZhciBwbHVnaW5zID0ge1xuICAgIGJlYXV0eWxvZzogcmVxdWlyZShcImJlYXV0eWxvZ1wiKSxcbiAgICBfOiByZXF1aXJlKFwibG9kYXNoXCIpXG59O1xuXG5leHBvcnQgPSBwbHVnaW5zOyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLElBQUksT0FBTyxHQUFHO0lBQ1YsU0FBUyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDL0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDZixDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztDQUN2QixDQUFDO0FBRUYsaUJBQVMsT0FBTyxDQUFDIiwiZmlsZSI6InNtYXJ0ZW52LnBsdWdpbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9tYWluLmQudHNcIiAvPlxudmFyIHBsdWdpbnMgPSB7XG4gICAgYmVhdXR5bG9nOiByZXF1aXJlKFwiYmVhdXR5bG9nXCIpLFxuICAgIFE6IHJlcXVpcmUoXCJxXCIpLFxuICAgIF86IHJlcXVpcmUoXCJsb2Rhc2hcIilcbn07XG5cbmV4cG9ydCA9IHBsdWdpbnM7Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
diff --git a/package.json b/package.json
index b3ed2d5..5d26168 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,8 @@
"homepage": "https://github.com/pushrocks/smartenv",
"dependencies": {
"beautylog": "^2.1.1",
- "lodash": "^4.5.0"
+ "lodash": "^4.5.0",
+ "q": "^1.4.1"
},
"devDependencies": {
"easyserve": "0.0.5",
diff --git a/ts/smartenv.classes.helpers.ts b/ts/smartenv.classes.helpers.ts
new file mode 100644
index 0000000..9f31a60
--- /dev/null
+++ b/ts/smartenv.classes.helpers.ts
@@ -0,0 +1,49 @@
+///
+
+export var getEnvString = function():string {
+ if (typeof window !== "undefined") {
+ return "browser";
+ } else if (typeof process !== "undefined") {
+ return "node";
+ }
+};
+
+export var getUserAgentString = function():string{
+ if(isBrowser()){
+ return navigator.userAgent;
+ } else {
+ return undefined;
+ }
+};
+
+export var isNode = function():boolean {
+ if (getEnvString() === "node"){
+ return true;
+ } else {
+ return false;
+ }
+};
+
+export var getNodeVersion = function():string {
+ return process.version;
+};
+
+export var isBrowser = function():boolean {
+ return !isNode();
+};
+
+export var isCI = function(){
+ if(process.env.CI){
+ return true;
+ } else {
+ return false;
+ };
+};
+
+export var isTravis = function(){
+ if(process.env.TRAVIS){
+ return true;
+ } else {
+ return false;
+ };
+};
\ No newline at end of file
diff --git a/ts/smartenv.classes.ts b/ts/smartenv.classes.ts
index 77ad2e4..c4b69ad 100644
--- a/ts/smartenv.classes.ts
+++ b/ts/smartenv.classes.ts
@@ -1,21 +1,21 @@
///
+
+import helpers = require("./smartenv.classes.helpers");
export class Environment {
- public runtimeEnv:string;
- public userAgent:string;
- public nodeVersion:string;
- public isBrowser:boolean;
- public isNode:boolean;
- constructor(runtimeEnvArg:string,userAgentArg:string = "undefined") {
- this.runtimeEnv = runtimeEnvArg;
- this.userAgent = userAgentArg;
- if(runtimeEnvArg == "node"){
- this.isBrowser = false;
- this.isNode = true;
- this.nodeVersion = process.version;
- } else if (runtimeEnvArg == "browser") {
- this.isBrowser = true;
- this.isNode = false;
- this.nodeVersion = "undefined";
- }
+ runtimeEnv:string;
+ isBrowser:boolean;
+ userAgent:string;
+ isNode:boolean;
+ nodeVersion:string;
+ isCI:boolean;
+ isTravis: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();
};
}
diff --git a/ts/smartenv.environment.ts b/ts/smartenv.environment.ts
index c615955..4bbc41f 100644
--- a/ts/smartenv.environment.ts
+++ b/ts/smartenv.environment.ts
@@ -16,17 +16,7 @@ var envDetermined:boolean = false;
*/
var getEnv = function(){
if (!envDetermined) {
- (function() {
- var localRunTimeEnv = "undefined";
- var localUserAgent = "undefined";
- if (typeof window !== "undefined") {
- localRunTimeEnv = 'browser';
- localUserAgent = navigator.userAgent;
- } else if (typeof process !== "undefined") {
- localRunTimeEnv = 'node';
- }
- environment = new classes.Environment(localRunTimeEnv,localUserAgent);
- })();
+ environment = new classes.Environment();
envDetermined = true; // ensure code above only runs once
};
return environment;
diff --git a/ts/smartenv.plugins.ts b/ts/smartenv.plugins.ts
index 74d5ed6..d3fdc9f 100644
--- a/ts/smartenv.plugins.ts
+++ b/ts/smartenv.plugins.ts
@@ -1,6 +1,7 @@
///
var plugins = {
beautylog: require("beautylog"),
+ Q: require("q"),
_: require("lodash")
};