smartenv/ts/smartenv.environment.ts

52 lines
1.8 KiB
TypeScript
Raw Normal View History

2015-11-30 18:58:35 +00:00
/// <reference path="index.ts" />
/**
* Deals with the environment the current JS script is running in.
*/
module SmartenvEnvironment {
2015-12-02 14:23:48 +00:00
var environment:Environment;
var envDetermined:boolean = false;
2015-11-30 18:58:35 +00:00
2015-12-02 14:23:48 +00:00
/**
* returns the environment
* @returns {Environment}
*/
var getEnv = function(){
if (!envDetermined) {
(function() {
var localRunTimeEnv = "undefined";
var localUserAgent = "undefined";
if (typeof window !== "undefined") {
2015-12-02 14:23:48 +00:00
localRunTimeEnv = 'browser';
localUserAgent = navigator.userAgent;
} else if (typeof process !== "undefined") {
2015-12-02 14:23:48 +00:00
localRunTimeEnv = 'node';
}
environment = new Environment(localRunTimeEnv,localUserAgent);
})();
envDetermined = true; // ensure code above only runs once
2015-11-30 18:58:35 +00:00
};
2015-12-02 14:23:48 +00:00
return environment;
};
/**
* prints the environment to console
*/
var printEnv = function() {
if (this.getEnv().isNode) {
plugins.beautylog.ok("running on NODE");
2015-12-02 14:23:48 +00:00
var smartenvVersion = require("./package.json").version;
plugins.beautylog.log("node version is " + this.getEnv().nodeVersion + " and smartenv version is " + smartenvVersion);
} else {
plugins.beautylog.ok("running on BROWSER");
plugins.beautylog.log("browser is " + this.getEnv().userAgent);
2015-12-02 14:23:48 +00:00
}
plugins.beautylog.log("the smartenv registration store currently holds the following properties:");
console.log(Object.getOwnPropertyNames(smartenv.obs.getAll()));
2015-12-02 14:23:48 +00:00
}
export var init = function(objectArg) {
objectArg.getEnv = getEnv;
objectArg.printEnv = printEnv;
2015-11-30 18:58:35 +00:00
}
}