Compare commits

...

10 Commits

Author SHA1 Message Date
a014dcf1ab 4.0.16 2020-10-13 20:09:15 +00:00
44bee7bf6f fix(core): update 2020-10-13 20:09:15 +00:00
7841917058 4.0.15 2020-09-29 19:29:51 +00:00
f5a674f98d fix(core): update 2020-09-29 19:29:50 +00:00
80ece7c093 4.0.14 2020-09-29 19:10:00 +00:00
39250b3d47 fix(core): update 2020-09-29 19:10:00 +00:00
ed78c0becf 4.0.13 2020-09-29 18:38:22 +00:00
63c103fde5 fix(core): update 2020-09-29 18:38:21 +00:00
88003bde0f 4.0.12 2020-09-29 17:49:34 +00:00
276a0641e8 fix(core): update 2020-09-29 17:49:33 +00:00
4 changed files with 65 additions and 21 deletions

22
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartenv",
"version": "4.0.11",
"version": "4.0.16",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -1239,9 +1239,9 @@
}
},
"@gitzone/tstest": {
"version": "1.0.44",
"resolved": "https://verdaccio.lossless.one/@gitzone%2ftstest/-/tstest-1.0.44.tgz",
"integrity": "sha512-IzQ9mEboN17Vgm/ecW2GtJa8FsnxDawD0PTeWfvtFbS4KNcqOxVM/gkkO7H4f1eJuzDaMvKWlsjBt2DBRhKqSg==",
"version": "1.0.48",
"resolved": "https://verdaccio.lossless.one/@gitzone%2ftstest/-/tstest-1.0.48.tgz",
"integrity": "sha512-BfB8p/ApUdjkFHgpjR4UucBn8BMkEUM9LsyZJW9jkeZI2NNTiU2JV/67WcCf/sNmk5L4TqbaBMiiPSUHc2EEyg==",
"dev": true,
"requires": {
"@gitzone/tsbundle": "^1.0.78",
@ -1251,7 +1251,7 @@
"@pushrocks/smartdelay": "^2.0.10",
"@pushrocks/smartexpress": "^3.0.76",
"@pushrocks/smartfile": "^8.0.0",
"@pushrocks/smartlog": "^2.0.36",
"@pushrocks/smartlog": "^2.0.39",
"@pushrocks/smartpromise": "^3.0.6",
"@pushrocks/smartshell": "^2.0.25",
"@pushrocks/tapbundle": "^3.2.9",
@ -1819,6 +1819,7 @@
"version": "1.1.6",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartparam/-/smartparam-1.1.6.tgz",
"integrity": "sha512-1El/F2QTWYDGy4Nh6vz9Ry1JVg1FEeyexB7Uvi4zHElpXYVxwso6xImRTLj+SW50JAg7nwEZ+ljkzTG9XvnwWA==",
"dev": true,
"requires": {
"@pushrocks/smartpromise": "^3.0.6",
"is-promise": "^2.1.0",
@ -2801,7 +2802,8 @@
"balanced-match": {
"version": "1.0.0",
"resolved": "https://verdaccio.lossless.one/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
"base": {
"version": "0.11.2",
@ -2970,6 +2972,7 @@
"version": "1.1.11",
"resolved": "https://verdaccio.lossless.one/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -3644,7 +3647,8 @@
"concat-map": {
"version": "0.0.1",
"resolved": "https://verdaccio.lossless.one/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
"concat-stream": {
"version": "1.6.2",
@ -6809,7 +6813,8 @@
"is-promise": {
"version": "2.2.2",
"resolved": "https://verdaccio.lossless.one/is-promise/-/is-promise-2.2.2.tgz",
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
"dev": true
},
"is-reference": {
"version": "1.2.1",
@ -7502,6 +7507,7 @@
"version": "3.0.4",
"resolved": "https://verdaccio.lossless.one/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartenv",
"version": "4.0.11",
"version": "4.0.16",
"description": "store things about your environment and let them travel across modules",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
@ -23,7 +23,6 @@
},
"homepage": "https://gitlab.com/pushrocks/smartenv",
"dependencies": {
"@pushrocks/smartparam": "^1.1.6",
"@pushrocks/smartpromise": "^3.0.6",
"@types/node": "^14.11.2"
},
@ -31,7 +30,7 @@
"@gitzone/tsbuild": "^2.1.25",
"@gitzone/tsbundle": "^1.0.78",
"@gitzone/tsrun": "^1.2.12",
"@gitzone/tstest": "^1.0.44",
"@gitzone/tstest": "^1.0.48",
"@pushrocks/tapbundle": "^3.2.9",
"@types/npm": "^2.0.31",
"tslint": "^6.1.3",

View File

@ -11,7 +11,26 @@ export interface IEnvObject {
* Smartenv class that makes it easy
*/
export class Smartenv {
public async getEnvAwareModule(optionsArg: {
nodeModuleName: string;
webUrlArg: string;
getFunction: () => any;
}) {
if (this.isNode) {
const moduleResult = await this.getSafeNodeModule(optionsArg.nodeModuleName);
return moduleResult;
} else if (this.isBrowser) {
const moduleResult = await this.getSafeWebModule(optionsArg.webUrlArg, optionsArg.getFunction);
} else {
console.error('platform for loading not supported by smartenv');
}
}
public getSafeNodeModule<T = any>(moduleNameArg: string): T {
if (!this.isNode) {
console.error('You tried to load a node module in a wrong context');
return;
}
// tslint:disable-next-line: function-constructor
return new Function(
'exports',
@ -23,6 +42,35 @@ export class Smartenv {
)(exports, require, module, __filename, __dirname);
}
public loadedScripts: string[] = [];
public async getSafeWebModule(urlArg: string, getFunctionArg: () => any) {
if (!this.isBrowser) {
console.error('You tried to load a web module in a wrong context');
return;
}
if (this.loadedScripts.includes(urlArg)) {
return getFunctionArg();
} else {
this.loadedScripts.push(urlArg);
}
const done = plugins.smartpromise.defer();
if (globalThis.importScripts) {
globalThis.importScripts(urlArg);
done.resolve();
} else {
const script = document.createElement('script');
script.onload = () => {
done.resolve();
};
script.src = urlArg;
document.head.appendChild(script);
}
await done.promise;
return getFunctionArg();
}
public get runtimeEnv() {
if (typeof window !== 'undefined') {
return 'browser';
@ -91,14 +139,6 @@ export class Smartenv {
}
}
/**
* get environment variables that fit the description
*/
// get envVars (regexArg: RegExp) {
// let EnvironmentArray = []
// // TODO: plugins.smartparam.forEachMinimatch()
// }
/**
* prints the environment to console
*/

View File

@ -1,4 +1,3 @@
import * as smartparam from '@pushrocks/smartparam';
import * as smartpromise from '@pushrocks/smartpromise';
export { smartparam, smartpromise };
export { smartpromise };