Compare commits
70 Commits
Author | SHA1 | Date | |
---|---|---|---|
d5c2d167ec | |||
2af6d5a974 | |||
fdba21d60d | |||
c17ebca309 | |||
a014dcf1ab | |||
44bee7bf6f | |||
7841917058 | |||
f5a674f98d | |||
80ece7c093 | |||
39250b3d47 | |||
ed78c0becf | |||
63c103fde5 | |||
88003bde0f | |||
276a0641e8 | |||
b166269cb4 | |||
3ca1b425bf | |||
ffc07da665 | |||
be2adaf259 | |||
7aa9637826 | |||
a3c4f87741 | |||
f005f57764 | |||
6e418cdbf8 | |||
87155900e1 | |||
d24b11f737 | |||
17ebd58951 | |||
32bd229f91 | |||
4e5ddf8411 | |||
701c7c1b8b | |||
9a272def16 | |||
0213950aae | |||
b7342dbf05 | |||
677c8d33b9 | |||
ffc781011d | |||
aeec1b36a3 | |||
4c2e7f9446 | |||
dddad457f3 | |||
4f110c6e64 | |||
12d971c470 | |||
886c245e8d | |||
50d610e5df | |||
5edb62c134 | |||
38f22a6d95 | |||
91cdb71388 | |||
ab33e97c8d | |||
47f840841c | |||
fe2210dc9f | |||
489ebab6ee | |||
46baf07551 | |||
cf0aabfbfc | |||
a5005aeb96 | |||
a7e9f1303d | |||
92a6508c6a | |||
32f6b5cbf8 | |||
bdfbcead8d | |||
e73e704886 | |||
efa818680a | |||
572d85b3d3 | |||
41e1386a8d | |||
98d6f9e483 | |||
f295776bea | |||
cde63e95a8 | |||
6e4804a5ad | |||
137592a19b | |||
b850bc48cd | |||
e1ce867493 | |||
8e94ca9a60 | |||
81eaaaca90 | |||
340e7716f0 | |||
af7b9c46d2 | |||
56d4432d31 |
26
.gitignore
vendored
26
.gitignore
vendored
@ -1,14 +1,20 @@
|
|||||||
node_modules/
|
.nogit/
|
||||||
.settings/
|
|
||||||
.idea/
|
# artifacts
|
||||||
coverage/
|
coverage/
|
||||||
docs/
|
public/
|
||||||
|
pages/
|
||||||
|
|
||||||
#npm devug
|
# installs
|
||||||
npm-debug.log
|
node_modules/
|
||||||
|
|
||||||
ts/*.js
|
# caches
|
||||||
ts/*.js.map
|
.yarn/
|
||||||
ts/typings/
|
.cache/
|
||||||
|
.rpt2_cache
|
||||||
|
|
||||||
test/browser/browserified/
|
# builds
|
||||||
|
dist/
|
||||||
|
dist_*/
|
||||||
|
|
||||||
|
# custom
|
137
.gitlab-ci.yml
Normal file
137
.gitlab-ci.yml
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
# gitzone ci_default
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- .npmci_cache/
|
||||||
|
key: '$CI_BUILD_STAGE'
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- security
|
||||||
|
- test
|
||||||
|
- release
|
||||||
|
- metadata
|
||||||
|
|
||||||
|
# ====================
|
||||||
|
# security stage
|
||||||
|
# ====================
|
||||||
|
mirror:
|
||||||
|
stage: security
|
||||||
|
script:
|
||||||
|
- npmci git mirror
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- notpriv
|
||||||
|
|
||||||
|
auditProductionDependencies:
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
stage: security
|
||||||
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci command npm install --production --ignore-scripts
|
||||||
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
|
- npmci command npm audit --audit-level=high --only=prod --production
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
auditDevDependencies:
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
stage: security
|
||||||
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci command npm install --ignore-scripts
|
||||||
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
|
- npmci command npm audit --audit-level=high --only=dev
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
|
# ====================
|
||||||
|
# test stage
|
||||||
|
# ====================
|
||||||
|
|
||||||
|
testStable:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci node install stable
|
||||||
|
- npmci npm install
|
||||||
|
- npmci npm test
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
testBuild:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci node install stable
|
||||||
|
- npmci npm install
|
||||||
|
- npmci command npm run build
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
release:
|
||||||
|
stage: release
|
||||||
|
script:
|
||||||
|
- npmci node install stable
|
||||||
|
- npmci npm publish
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- notpriv
|
||||||
|
|
||||||
|
# ====================
|
||||||
|
# metadata stage
|
||||||
|
# ====================
|
||||||
|
codequality:
|
||||||
|
stage: metadata
|
||||||
|
allow_failure: true
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
script:
|
||||||
|
- npmci command npm install -g tslint typescript
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci npm install
|
||||||
|
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- priv
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
stage: metadata
|
||||||
|
script:
|
||||||
|
- npmci trigger
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- notpriv
|
||||||
|
|
||||||
|
pages:
|
||||||
|
stage: metadata
|
||||||
|
script:
|
||||||
|
- npmci node install lts
|
||||||
|
- npmci command npm install -g @gitzone/tsdoc
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci npm install
|
||||||
|
- npmci command tsdoc
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- notpriv
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
paths:
|
||||||
|
- public
|
||||||
|
allow_failure: true
|
15
.travis.yml
15
.travis.yml
@ -1,15 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- 4
|
|
||||||
- stable
|
|
||||||
deploy:
|
|
||||||
provider: npm
|
|
||||||
email: npm@lossless.digital
|
|
||||||
api_key:
|
|
||||||
secure: W6bKXwA7fNE+SNc4cNMkG4T6avf3JTpygukjuL++NKSc69W8aBrGgB2YFGbeIMiiORGLVqdQ6RCBg3Qk1o9Fi4i94dqS+8HjqBB7bYyz8FprtTnrcxJSIZPmEkRD5UNCAdYkDLrofeihnrojsNRLOTvM4x8hSIJpp+2W/WgdYGOzoUJK7qRMWM9TcAMBtVVrww2kVUDoDeHLWIj5w6jvlpl+rUJqmA/x3Gnom+wIVwClyy+mTnwjn9y6ICzoSmHKeL70Vun9AmgjshhVJOW51R4DYt8lkIYvT8DhwIqNOgvf2+uK2rg52pI0v86FL5XbdSCt6AwKtHZFR4J07h/bIr9J/teMrSlX0aI/J7tZnUgFAkUPKtqpvFZm/GD8/549YaG9koUQjwL5pcCUmuPl4djBy22q0NXw/bQIu59fW4KS7cS0KXBrofLCskXAc/CI+EzOX6LXnzryXLh4kDJiWNMLXOeSpdPkvAPzFj9MNYNnF6vjmhUJvoaN1TGO1oOEjIN68BfQY/4EvJDvwgVnqxihomvn95uUYB8f4EnTp2RVnbGKTlsY7J1zzwnMQrWbSRIT/XLsK2rP1oDGbSF1iLX06/sFLXbBDVYsw55jovOvF/dxlZjTJEUWvBV56s81bmKebskr9EdFCTUkP7oegexx4v6rins5WOr1Gele634=
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
repo: pushrocks/smartenv
|
|
||||||
notifications:
|
|
||||||
slack:
|
|
||||||
secure: f5Uss0z9RPl/QcA/DroB8loyE93aOYI6bqCkrsiUscmZtlv/TVQtT4dxqGA6uvcG6iTQDBi3Ul88dQxWkRm4IqbhY35/iMaV2dHW4FVYMAh8GQMbsfL2sALCcufxD9blw47awv3iFcwhV1EeyesscjgL0JIjduk96v/7G/6QIO2838M1lzlgtj+kRUkim8qkaEs1je3gRrhMUIjLuAdscMXyUKYFMjWo9ACSjVUl30R/ZNemb18itIja6i92GotreBgcfEMczvy58ovDC7xdJUsY8LjMI01DwY+WPRnI0tAhsuI8moBwwcdM4e3bAjKjucQRjO33O5bMWRZ6QCiYd0DnCEFyCPQLJ4GSy/tkD00n8ijLHAOSV3AH1zNbdK1EAdSPQXDvlI36KJn/2hyQLoitGHVUPr76ujJWP82ypO2tgIp3XQU0dJVCxDuHnwJO2+hjdI+gCPqxNTpjeujHx3UdkTGNRjuuf9dlZ/D08fApjYxy2fxItTqo3QjP/nrqvBXUOPP8yPHpjIT4H2t5Pr4SJjBGI6X4qhKyFj6s9rA/Xu1rL+45zu1C3uC3z+u3T9UwrbzJ/cZM6r6UQvQmUvIfBNaMlg4I/diQCDIPL+Rhop2nylY3IcHmJnk2itn7kOqj1tohCpFEml5pRuSZy4udWywkdtyBAsHWFLF7oiQ=
|
|
29
.vscode/launch.json
vendored
Normal file
29
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "current file",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"${relativeFile}"
|
||||||
|
],
|
||||||
|
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"internalConsoleOptions": "openOnSessionStart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "test.ts",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"test/test.ts"
|
||||||
|
],
|
||||||
|
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"internalConsoleOptions": "openOnSessionStart"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
26
.vscode/settings.json
vendored
Normal file
26
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"json.schemas": [
|
||||||
|
{
|
||||||
|
"fileMatch": ["/npmextra.json"],
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"npmci": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "settings for npmci"
|
||||||
|
},
|
||||||
|
"gitzone": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "settings for gitzone",
|
||||||
|
"properties": {
|
||||||
|
"projectType": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["website", "element", "service", "npm", "wcc"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
28
README.md
28
README.md
@ -1,28 +0,0 @@
|
|||||||
# smartenv
|
|
||||||
store things about your environment and let them travel across modules
|
|
||||||
|
|
||||||
## Status
|
|
||||||
[](https://travis-ci.org/pushrocks/smartenv)
|
|
||||||
[](https://david-dm.org/pushrocks/smartenv)
|
|
||||||
[](https://david-dm.org/pushrocks/smartenv#info=devDependencies)
|
|
||||||
[](https://www.bithound.io/github/pushrocks/smartenv/master/dependencies/npm)
|
|
||||||
[](https://www.bithound.io/github/pushrocks/smartenv)
|
|
||||||
|
|
||||||
## Install
|
|
||||||
Install the package through npm
|
|
||||||
|
|
||||||
```
|
|
||||||
npm install smartenv
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var smartenv = require("smartenv");
|
|
||||||
|
|
||||||
smartenv.info(); //prints an output about your current environment and registered objects
|
|
||||||
smartenv.register({akey:"a text"},"somevalue"); // register a new object
|
|
||||||
smartenv.makeGlobal() // make smartenv available from gobal.smartenv
|
|
||||||
smartenv.get("somevalue").akey; // returns "a text"
|
|
||||||
smartenv.items.somevalue.akey; // also returns "a text"
|
|
||||||
```
|
|
7
dist/index.d.ts
vendored
7
dist/index.d.ts
vendored
@ -1,7 +0,0 @@
|
|||||||
import * as classes from "./smartenv.classes";
|
|
||||||
declare var smartenv: {
|
|
||||||
getEnv: () => classes.Environment;
|
|
||||||
printEnv: () => void;
|
|
||||||
obs: any;
|
|
||||||
};
|
|
||||||
export = smartenv;
|
|
12
dist/index.js
vendored
12
dist/index.js
vendored
@ -1,12 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
"use strict";
|
|
||||||
var SmartenvEnvironment = require("./smartenv.environment");
|
|
||||||
var SmartenvObjectstorage = require("./smartenv.objectstorage");
|
|
||||||
var smartenv = {
|
|
||||||
getEnv: SmartenvEnvironment.getEnv,
|
|
||||||
printEnv: SmartenvEnvironment.printEnv,
|
|
||||||
obs: SmartenvObjectstorage.obs
|
|
||||||
}; //create smartenv object
|
|
||||||
module.exports = smartenv;
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQzs7QUFJMUMsSUFBWSxtQkFBbUIsV0FBTSx3QkFBd0IsQ0FBQyxDQUFBO0FBQzlELElBQVkscUJBQXFCLFdBQU0sMEJBQTBCLENBQUMsQ0FBQTtBQUVsRSxJQUFJLFFBQVEsR0FBRztJQUNYLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO0lBQ2xDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRO0lBQ3RDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHO0NBQ2pDLENBQUMsQ0FBQyx3QkFBd0I7QUFFM0IsaUJBQVMsUUFBUSxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cblxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9zbWFydGVudi5wbHVnaW5zXCI7XG5pbXBvcnQgKiBhcyBjbGFzc2VzIGZyb20gXCIuL3NtYXJ0ZW52LmNsYXNzZXNcIjtcbmltcG9ydCAqIGFzIFNtYXJ0ZW52RW52aXJvbm1lbnQgZnJvbSBcIi4vc21hcnRlbnYuZW52aXJvbm1lbnRcIjtcbmltcG9ydCAqIGFzIFNtYXJ0ZW52T2JqZWN0c3RvcmFnZSBmcm9tIFwiLi9zbWFydGVudi5vYmplY3RzdG9yYWdlXCI7XG5cbnZhciBzbWFydGVudiA9IHtcbiAgICBnZXRFbnY6IFNtYXJ0ZW52RW52aXJvbm1lbnQuZ2V0RW52LFxuICAgIHByaW50RW52OiBTbWFydGVudkVudmlyb25tZW50LnByaW50RW52LFxuICAgIG9iczogU21hcnRlbnZPYmplY3RzdG9yYWdlLm9ic1xufTsgLy9jcmVhdGUgc21hcnRlbnYgb2JqZWN0XG5cbmV4cG9ydCA9IHNtYXJ0ZW52O1xuIl19
|
|
11
dist/smartenv.classes.d.ts
vendored
11
dist/smartenv.classes.d.ts
vendored
@ -1,11 +0,0 @@
|
|||||||
export declare class Environment {
|
|
||||||
runtimeEnv: string;
|
|
||||||
isBrowser: boolean;
|
|
||||||
userAgent: string;
|
|
||||||
isNode: boolean;
|
|
||||||
nodeVersion: string;
|
|
||||||
isCI: boolean;
|
|
||||||
isTravis: boolean;
|
|
||||||
isC9: boolean;
|
|
||||||
constructor();
|
|
||||||
}
|
|
8
dist/smartenv.classes.helpers.d.ts
vendored
8
dist/smartenv.classes.helpers.d.ts
vendored
@ -1,8 +0,0 @@
|
|||||||
export declare var getEnvString: () => string;
|
|
||||||
export declare var getUserAgentString: () => string;
|
|
||||||
export declare var isNode: () => boolean;
|
|
||||||
export declare var getNodeVersion: () => string;
|
|
||||||
export declare var isBrowser: () => boolean;
|
|
||||||
export declare var isCI: () => boolean;
|
|
||||||
export declare var isC9: () => boolean;
|
|
||||||
export declare var isTravis: () => boolean;
|
|
55
dist/smartenv.classes.helpers.js
vendored
55
dist/smartenv.classes.helpers.js
vendored
@ -1,55 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
"use strict";
|
|
||||||
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;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmNsYXNzZXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQ0FBMEM7O0FBRS9CLG9CQUFZLEdBQUc7SUFDdEIsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2xCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFUywwQkFBa0IsR0FBRztJQUM1QixFQUFFLENBQUEsQ0FBQyxpQkFBUyxFQUFFLENBQUMsQ0FBQSxDQUFDO1FBQ1osTUFBTSxDQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRVMsY0FBTSxHQUFHO0lBQ2hCLE1BQU0sQ0FBQyxvQkFBWSxFQUFFLEtBQUssTUFBTSxDQUFBO0FBQ3BDLENBQUMsQ0FBQztBQUVTLHNCQUFjLEdBQUc7SUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRVMsaUJBQVMsR0FBRztJQUNuQixNQUFNLENBQUMsQ0FBQyxjQUFNLEVBQUUsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFUyxZQUFJLEdBQUc7SUFDZCxFQUFFLENBQUEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUFBLENBQUM7QUFDTixDQUFDLENBQUM7QUFFUyxZQUFJLEdBQUc7SUFDZCxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBLENBQUM7UUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFUyxnQkFBUSxHQUFHO0lBQ2xCLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUFBLENBQUM7QUFDTixDQUFDLENBQUMiLCJmaWxlIjoic21hcnRlbnYuY2xhc3Nlcy5oZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cblxuZXhwb3J0IHZhciBnZXRFbnZTdHJpbmcgPSBmdW5jdGlvbigpOnN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIFwiYnJvd3NlclwiO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIFwibm9kZVwiO1xuICAgIH1cbn07XG5cbmV4cG9ydCB2YXIgZ2V0VXNlckFnZW50U3RyaW5nID0gZnVuY3Rpb24oKTpzdHJpbmd7XG4gICAgaWYoaXNCcm93c2VyKCkpe1xuICAgICAgICByZXR1cm4gIG5hdmlnYXRvci51c2VyQWdlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59O1xuXG5leHBvcnQgdmFyIGlzTm9kZSA9IGZ1bmN0aW9uKCk6Ym9vbGVhbiB7XG4gICAgcmV0dXJuIGdldEVudlN0cmluZygpID09PSBcIm5vZGVcIlxufTtcblxuZXhwb3J0IHZhciBnZXROb2RlVmVyc2lvbiA9IGZ1bmN0aW9uKCk6c3RyaW5nIHtcbiAgICByZXR1cm4gcHJvY2Vzcy52ZXJzaW9uO1xufTtcblxuZXhwb3J0IHZhciBpc0Jyb3dzZXIgPSBmdW5jdGlvbigpOmJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNOb2RlKCk7XG59O1xuXG5leHBvcnQgdmFyIGlzQ0kgPSBmdW5jdGlvbigpe1xuICAgIGlmKHByb2Nlc3MuZW52LkNJKXtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG59O1xuXG5leHBvcnQgdmFyIGlzQzkgPSBmdW5jdGlvbigpe1xuICAgIGlmIChwcm9jZXNzLmVudi5DOV9IT1NUTkFNRSl7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59O1xuXG5leHBvcnQgdmFyIGlzVHJhdmlzID0gZnVuY3Rpb24oKXtcbiAgICBpZihwcm9jZXNzLmVudi5UUkFWSVMpe1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbn07Il19
|
|
20
dist/smartenv.classes.js
vendored
20
dist/smartenv.classes.js
vendored
@ -1,20 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
"use strict";
|
|
||||||
var helpers = require("./smartenv.classes.helpers");
|
|
||||||
var Environment = (function () {
|
|
||||||
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();
|
|
||||||
this.isC9 = helpers.isC9();
|
|
||||||
}
|
|
||||||
;
|
|
||||||
return Environment;
|
|
||||||
}());
|
|
||||||
exports.Environment = Environment;
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmNsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDOztBQUUxQyxJQUFPLE9BQU8sV0FBVyw0QkFBNEIsQ0FBQyxDQUFDO0FBQ3ZEO0lBU0k7UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7O0lBQ0wsa0JBQUM7QUFBRCxDQW5CQSxBQW1CQyxJQUFBO0FBbkJZLG1CQUFXLGNBbUJ2QixDQUFBIiwiZmlsZSI6InNtYXJ0ZW52LmNsYXNzZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9tYWluLmQudHNcIiAvPlxuXG5pbXBvcnQgaGVscGVycyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LmNsYXNzZXMuaGVscGVyc1wiKTtcbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudCB7XG4gICAgcnVudGltZUVudjpzdHJpbmc7XG4gICAgaXNCcm93c2VyOmJvb2xlYW47XG4gICAgdXNlckFnZW50OnN0cmluZztcbiAgICBpc05vZGU6Ym9vbGVhbjtcbiAgICBub2RlVmVyc2lvbjpzdHJpbmc7XG4gICAgaXNDSTpib29sZWFuO1xuICAgIGlzVHJhdmlzOmJvb2xlYW47XG4gICAgaXNDOTpib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJ1bnRpbWVFbnYgPSBoZWxwZXJzLmdldEVudlN0cmluZygpO1xuICAgICAgICB0aGlzLmlzQnJvd3NlciA9IGhlbHBlcnMuaXNCcm93c2VyKCk7XG4gICAgICAgIHRoaXMudXNlckFnZW50ID0gaGVscGVycy5nZXRVc2VyQWdlbnRTdHJpbmcoKTtcbiAgICAgICAgdGhpcy5pc05vZGUgPSBoZWxwZXJzLmlzTm9kZSgpO1xuICAgICAgICB0aGlzLm5vZGVWZXJzaW9uID0gaGVscGVycy5nZXROb2RlVmVyc2lvbigpO1xuICAgICAgICB0aGlzLmlzQ0kgPSBoZWxwZXJzLmlzQ0koKTtcbiAgICAgICAgdGhpcy5pc1RyYXZpcyA9IGhlbHBlcnMuaXNUcmF2aXMoKTtcbiAgICAgICAgdGhpcy5pc0M5ID0gaGVscGVycy5pc0M5KCk7XG4gICAgfTtcbn1cbiJdfQ==
|
|
10
dist/smartenv.environment.d.ts
vendored
10
dist/smartenv.environment.d.ts
vendored
@ -1,10 +0,0 @@
|
|||||||
import classes = require("./smartenv.classes");
|
|
||||||
/**
|
|
||||||
* returns the environment
|
|
||||||
* @returns {Environment}
|
|
||||||
*/
|
|
||||||
export declare var getEnv: () => classes.Environment;
|
|
||||||
/**
|
|
||||||
* prints the environment to console
|
|
||||||
*/
|
|
||||||
export declare var printEnv: () => void;
|
|
35
dist/smartenv.environment.js
vendored
35
dist/smartenv.environment.js
vendored
@ -1,35 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var classes = require("./smartenv.classes");
|
|
||||||
var objectStorage = require("./smartenv.objectstorage");
|
|
||||||
var environment;
|
|
||||||
var 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");
|
|
||||||
var 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;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLQSxJQUFPLE9BQU8sV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBQy9DLElBQU8sYUFBYSxXQUFXLDBCQUEwQixDQUFDLENBQUM7QUFHM0QsSUFBSSxXQUErQixDQUFDO0FBQ3BDLElBQUksYUFBYSxHQUFXLEtBQUssQ0FBQztBQUVsQzs7O0dBR0c7QUFDUSxjQUFNLEdBQUc7SUFDaEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsbUNBQW1DO0lBQzdELENBQUM7SUFBQSxDQUFDO0lBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNTLGdCQUFRLEdBQUc7SUFDbkIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9CLElBQUksZUFBZSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0lBQ3pGLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGVudi5lbnZpcm9ubWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL21haW4uZC50c1wiIC8+XG4vKipcbiAqIERlYWxzIHdpdGggdGhlIGVudmlyb25tZW50IHRoZSBjdXJyZW50IEpTIHNjcmlwdCBpcyBydW5uaW5nIGluLlxuICovXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LnBsdWdpbnNcIik7XG5pbXBvcnQgY2xhc3NlcyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LmNsYXNzZXNcIik7XG5pbXBvcnQgb2JqZWN0U3RvcmFnZSA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52Lm9iamVjdHN0b3JhZ2VcIik7XG5cblxudmFyIGVudmlyb25tZW50OmNsYXNzZXMuRW52aXJvbm1lbnQ7XG52YXIgZW52RGV0ZXJtaW5lZDpib29sZWFuID0gZmFsc2U7XG5cbi8qKlxuICogcmV0dXJucyB0aGUgZW52aXJvbm1lbnRcbiAqIEByZXR1cm5zIHtFbnZpcm9ubWVudH1cbiAqL1xuZXhwb3J0IHZhciBnZXRFbnYgPSBmdW5jdGlvbigpe1xuICAgIGlmICghZW52RGV0ZXJtaW5lZCkge1xuICAgICAgICBlbnZpcm9ubWVudCA9IG5ldyBjbGFzc2VzLkVudmlyb25tZW50KCk7XG4gICAgICAgIGVudkRldGVybWluZWQgPSB0cnVlOyAvLyBlbnN1cmUgY29kZSBhYm92ZSBvbmx5IHJ1bnMgb25jZVxuICAgIH07XG4gICAgcmV0dXJuIGVudmlyb25tZW50O1xufTtcblxuLyoqXG4gKiBwcmludHMgdGhlIGVudmlyb25tZW50IHRvIGNvbnNvbGVcbiAqL1xuZXhwb3J0IHZhciAgcHJpbnRFbnYgPSBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5nZXRFbnYoKS5pc05vZGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJydW5uaW5nIG9uIE5PREVcIik7XG4gICAgICAgIHZhciBzbWFydGVudlZlcnNpb24gPSByZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpLnZlcnNpb247XG4gICAgICAgIGNvbnNvbGUubG9nKFwibm9kZSB2ZXJzaW9uIGlzIFwiICsgdGhpcy5nZXRFbnYoKS5ub2RlVmVyc2lvbiArIFwiIGFuZCBzbWFydGVudiB2ZXJzaW9uIGlzIFwiICsgc21hcnRlbnZWZXJzaW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhcInJ1bm5pbmcgb24gQlJPV1NFUlwiKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJicm93c2VyIGlzIFwiICsgdGhpcy5nZXRFbnYoKS51c2VyQWdlbnQpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcInRoZSBzbWFydGVudiByZWdpc3RyYXRpb24gc3RvcmUgY3VycmVudGx5IGhvbGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcIik7XG4gICAgY29uc29sZS5sb2coT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0U3RvcmFnZS5vYnMuZ2V0QWxsKCkpKTtcbn07Il19
|
|
2
dist/smartenv.objectstorage.d.ts
vendored
2
dist/smartenv.objectstorage.d.ts
vendored
@ -1,2 +0,0 @@
|
|||||||
export declare var obs: any;
|
|
||||||
export declare var obsItems: any;
|
|
47
dist/smartenv.objectstorage.js
vendored
47
dist/smartenv.objectstorage.js
vendored
@ -1,47 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
var plugins = require("./smartenv.plugins");
|
|
||||||
exports.obs = {
|
|
||||||
add: function (paramNameArg, objectArg) {
|
|
||||||
if (paramNameArg === void 0) { paramNameArg = "undefined"; }
|
|
||||||
if (objectArg === void 0) { objectArg = "undefined"; }
|
|
||||||
if (paramNameArg == "undefined") {
|
|
||||||
console.log("paramName is undefined");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (objectArg == "undefined") {
|
|
||||||
console.log("objectArg is undefined");
|
|
||||||
}
|
|
||||||
if (typeof exports.obsItems[paramNameArg] === "undefined") {
|
|
||||||
exports.obsItems[paramNameArg] = objectArg;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.log("object is already present, so add operation has failed.");
|
|
||||||
}
|
|
||||||
return exports.obsItems[paramNameArg];
|
|
||||||
},
|
|
||||||
replace: function (paramNameArg, objectArg) {
|
|
||||||
exports.obsItems[paramNameArg] = objectArg;
|
|
||||||
},
|
|
||||||
merge: function (paramNameArg, objectArg) {
|
|
||||||
if (!(typeof exports.obsItems[paramNameArg] === "undefined")) {
|
|
||||||
exports.obsItems[paramNameArg] = plugins._.assign(exports.obsItems[paramNameArg], objectArg);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.log("object is not present, so there is nothing to merge");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
get: function (keyName) {
|
|
||||||
return exports.obsItems[keyName];
|
|
||||||
},
|
|
||||||
getAll: function () {
|
|
||||||
return exports.obsItems;
|
|
||||||
},
|
|
||||||
addComplete: function (itemsArg) {
|
|
||||||
exports.obsItems = plugins._.assign(exports.obsItems, itemsArg);
|
|
||||||
return exports.obsItems;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
exports.obsItems = {};
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBDQUEwQztBQUMxQyxJQUFPLE9BQU8sV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3BDLFdBQUcsR0FBTztJQUNqQixHQUFHLEVBQUUsVUFBUyxZQUEwQixFQUFDLFNBQXVCO1FBQWxELDRCQUEwQixHQUExQiwwQkFBMEI7UUFBQyx5QkFBdUIsR0FBdkIsdUJBQXVCO1FBQzVELEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxFQUFFLENBQUMsQ0FBQyxPQUFPLGdCQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUEsQ0FBQztZQUMvQyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN2QyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELE1BQU0sQ0FBQyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLEVBQUUsVUFBUyxZQUFZLEVBQUMsU0FBUztRQUNwQyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsS0FBSyxFQUFFLFVBQVMsWUFBWSxFQUFDLFNBQVM7UUFDbEMsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDLE9BQU8sZ0JBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDakQsZ0JBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0wsQ0FBQztJQUNELEdBQUcsRUFBRSxVQUFTLE9BQU87UUFDakIsTUFBTSxDQUFDLGdCQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE1BQU0sRUFBRTtRQUNKLE1BQU0sQ0FBQyxnQkFBUSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxXQUFXLEVBQUUsVUFBUyxRQUFRO1FBQzFCLGdCQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxNQUFNLENBQUMsZ0JBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0osQ0FBQztBQUNTLGdCQUFRLEdBQU8sRUFBRSxDQUFDIiwiZmlsZSI6InNtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9tYWluLmQudHNcIiAvPlxuaW1wb3J0IHBsdWdpbnMgPSByZXF1aXJlKFwiLi9zbWFydGVudi5wbHVnaW5zXCIpO1xuZXhwb3J0IHZhciBvYnM6YW55ID0ge1xuICAgIGFkZDogZnVuY3Rpb24ocGFyYW1OYW1lQXJnID0gXCJ1bmRlZmluZWRcIixvYmplY3RBcmcgPSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGlmIChwYXJhbU5hbWVBcmcgPT0gXCJ1bmRlZmluZWRcIil7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInBhcmFtTmFtZSBpcyB1bmRlZmluZWRcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iamVjdEFyZyA9PSBcInVuZGVmaW5lZFwiKXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwib2JqZWN0QXJnIGlzIHVuZGVmaW5lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9ic0l0ZW1zW3BhcmFtTmFtZUFyZ10gPT09IFwidW5kZWZpbmVkXCIpe1xuICAgICAgICAgICAgb2JzSXRlbXNbcGFyYW1OYW1lQXJnXSA9IG9iamVjdEFyZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwib2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCwgc28gYWRkIG9wZXJhdGlvbiBoYXMgZmFpbGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JzSXRlbXNbcGFyYW1OYW1lQXJnXTtcbiAgICB9LFxuICAgIHJlcGxhY2U6IGZ1bmN0aW9uKHBhcmFtTmFtZUFyZyxvYmplY3RBcmcpe1xuICAgICAgICBvYnNJdGVtc1twYXJhbU5hbWVBcmddID0gb2JqZWN0QXJnO1xuICAgIH0sXG4gICAgbWVyZ2U6IGZ1bmN0aW9uKHBhcmFtTmFtZUFyZyxvYmplY3RBcmcpe1xuICAgICAgICBpZighKHR5cGVvZiBvYnNJdGVtc1twYXJhbU5hbWVBcmddID09PSBcInVuZGVmaW5lZFwiKSl7XG4gICAgICAgICAgICBvYnNJdGVtc1twYXJhbU5hbWVBcmddID0gcGx1Z2lucy5fLmFzc2lnbihvYnNJdGVtc1twYXJhbU5hbWVBcmddLG9iamVjdEFyZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIm9iamVjdCBpcyBub3QgcHJlc2VudCwgc28gdGhlcmUgaXMgbm90aGluZyB0byBtZXJnZVwiKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0OiBmdW5jdGlvbihrZXlOYW1lKSB7XG4gICAgICAgIHJldHVybiBvYnNJdGVtc1trZXlOYW1lXTtcbiAgICB9LFxuICAgIGdldEFsbDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb2JzSXRlbXM7XG4gICAgfSxcbiAgICBhZGRDb21wbGV0ZTogZnVuY3Rpb24oaXRlbXNBcmcpIHtcbiAgICAgICAgb2JzSXRlbXMgPSBwbHVnaW5zLl8uYXNzaWduKG9ic0l0ZW1zLGl0ZW1zQXJnKTtcbiAgICAgICAgcmV0dXJuIG9ic0l0ZW1zO1xuICAgIH1cbn07XG5leHBvcnQgdmFyIG9ic0l0ZW1zOmFueSA9IHt9OyJdfQ==
|
|
5
dist/smartenv.plugins.d.ts
vendored
5
dist/smartenv.plugins.d.ts
vendored
@ -1,5 +0,0 @@
|
|||||||
declare var plugins: {
|
|
||||||
Q: any;
|
|
||||||
_: any;
|
|
||||||
};
|
|
||||||
export = plugins;
|
|
9
dist/smartenv.plugins.js
vendored
9
dist/smartenv.plugins.js
vendored
@ -1,9 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
var plugins = {
|
|
||||||
Q: require("q"),
|
|
||||||
_: require("lodash")
|
|
||||||
};
|
|
||||||
module.exports = plugins;
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBDQUEwQztBQUMxQyxJQUFJLE9BQU8sR0FBRztJQUNWLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ2YsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLGlCQUFTLE9BQU8sQ0FBQyIsImZpbGUiOiJzbWFydGVudi5wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbnZhciBwbHVnaW5zID0ge1xuICAgIFE6IHJlcXVpcmUoXCJxXCIpLFxuICAgIF86IHJlcXVpcmUoXCJsb2Rhc2hcIilcbn07XG5cbmV4cG9ydCA9IHBsdWdpbnM7Il19
|
|
17
npmextra.json
Normal file
17
npmextra.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"npmci": {
|
||||||
|
"npmGlobalTools": [],
|
||||||
|
"npmAccessLevel": "public"
|
||||||
|
},
|
||||||
|
"gitzone": {
|
||||||
|
"projectType": "npm",
|
||||||
|
"module": {
|
||||||
|
"githost": "gitlab.com",
|
||||||
|
"gitscope": "pushrocks",
|
||||||
|
"gitrepo": "smartenv",
|
||||||
|
"description": "store things about your environment and let them travel across modules",
|
||||||
|
"npmPackagename": "@pushrocks/smartenv",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"mode":"default",
|
|
||||||
"coverageTreshold":75
|
|
||||||
}
|
|
18699
package-lock.json
generated
Normal file
18699
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
52
package.json
52
package.json
@ -1,32 +1,56 @@
|
|||||||
{
|
{
|
||||||
"name": "smartenv",
|
"name": "@pushrocks/smartenv",
|
||||||
"version": "1.2.5",
|
"version": "5.0.0",
|
||||||
"description": "store things about your environment and let them travel across modules",
|
"description": "store things about your environment and let them travel across modules",
|
||||||
"main": "dist/index.js",
|
"main": "dist_ts/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist_ts/index.d.ts",
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(npmts)",
|
"test": "(tstest test/ --web)",
|
||||||
|
"build": "(tsbuild --web --allowimplicitany && tsbundle npm)",
|
||||||
"testbrowser": "(npm test) && (node testbrowser.js)"
|
"testbrowser": "(npm test) && (node testbrowser.js)"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/pushrocks/smartenv.git"
|
"url": "https://gitlab.com/pushrocks/smartenv.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"environment"
|
"environment"
|
||||||
],
|
],
|
||||||
"author": "Smart Coordination GmbH <office@push.rocks> (https://push.rocks)",
|
"author": "Lossless GmbH <hello@lossless.support> (https://lossless.com)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/pushrocks/smartenv/issues"
|
"url": "https://gitlab.com/pushrocks/smartenv/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/pushrocks/smartenv",
|
"homepage": "https://gitlab.com/pushrocks/smartenv",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"beautylog": "^4.1.2",
|
"@pushrocks/smartpromise": "^3.1.7",
|
||||||
"lodash": "^4.11.1",
|
"@types/node": "^17.0.21"
|
||||||
"q": "^1.4.1"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts": "^5.1.5"
|
"@gitzone/tsbuild": "^2.1.56",
|
||||||
}
|
"@gitzone/tsbundle": "^1.0.98",
|
||||||
|
"@gitzone/tsrun": "^1.2.31",
|
||||||
|
"@gitzone/tstest": "^1.0.68",
|
||||||
|
"@pushrocks/tapbundle": "^5.0.2",
|
||||||
|
"@types/npm": "^7.19.0",
|
||||||
|
"tslint": "^6.1.3",
|
||||||
|
"tslint-config-prettier": "^1.18.0"
|
||||||
|
},
|
||||||
|
"private": false,
|
||||||
|
"files": [
|
||||||
|
"ts/**/*",
|
||||||
|
"ts_web/**/*",
|
||||||
|
"dist/**/*",
|
||||||
|
"dist_*/**/*",
|
||||||
|
"dist_ts/**/*",
|
||||||
|
"dist_ts_web/**/*",
|
||||||
|
"assets/**/*",
|
||||||
|
"cli.js",
|
||||||
|
"npmextra.json",
|
||||||
|
"readme.md"
|
||||||
|
],
|
||||||
|
"browserslist": [
|
||||||
|
"last 1 chrome versions"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
39
readme.md
Normal file
39
readme.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# @pushrocks/smartenv
|
||||||
|
store things about your environment and let them travel across modules
|
||||||
|
|
||||||
|
## Availabililty and Links
|
||||||
|
* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartenv)
|
||||||
|
* [gitlab.com (source)](https://gitlab.com/pushrocks/smartenv)
|
||||||
|
* [github.com (source mirror)](https://github.com/pushrocks/smartenv)
|
||||||
|
* [docs (typedoc)](https://pushrocks.gitlab.io/smartenv/)
|
||||||
|
|
||||||
|
## Status for master
|
||||||
|
|
||||||
|
Status Category | Status Badge
|
||||||
|
-- | --
|
||||||
|
GitLab Pipelines | [](https://lossless.cloud)
|
||||||
|
GitLab Pipline Test Coverage | [](https://lossless.cloud)
|
||||||
|
npm | [](https://lossless.cloud)
|
||||||
|
Snyk | [](https://lossless.cloud)
|
||||||
|
TypeScript Support | [](https://lossless.cloud)
|
||||||
|
node Support | [](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||||
|
Code Style | [](https://lossless.cloud)
|
||||||
|
PackagePhobia (total standalone install weight) | [](https://lossless.cloud)
|
||||||
|
PackagePhobia (package size on registry) | [](https://lossless.cloud)
|
||||||
|
BundlePhobia (total size when bundled) | [](https://lossless.cloud)
|
||||||
|
Platform support | [](https://lossless.cloud) [](https://lossless.cloud)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Use TypeScript for best in class instellisense.
|
||||||
|
|
||||||
|
## Contribution
|
||||||
|
|
||||||
|
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
|
||||||
|
|
||||||
|
For further information read the linked docs at the top of this readme.
|
||||||
|
|
||||||
|
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||||
|
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
|
||||||
|
|
||||||
|
[](https://maintainedby.lossless.com)
|
@ -1,6 +0,0 @@
|
|||||||
<head>
|
|
||||||
<script async src="browserified/index.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
</body>
|
|
@ -1,2 +0,0 @@
|
|||||||
var smartenv = require("./index.js");
|
|
||||||
smartenv.printEnv();
|
|
3
test/test.d.ts
vendored
3
test/test.d.ts
vendored
@ -1,3 +0,0 @@
|
|||||||
declare var smartenv: any;
|
|
||||||
declare var beautylog: any;
|
|
||||||
declare var key2: string;
|
|
21
test/test.js
21
test/test.js
@ -1,21 +0,0 @@
|
|||||||
/// <reference path="../ts/typings/main.d.ts" />
|
|
||||||
var smartenv = require("../dist/index.js");
|
|
||||||
var beautylog = require("beautylog");
|
|
||||||
smartenv.printEnv();
|
|
||||||
//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
|
|
||||||
//test smartenv.obs.replace
|
|
||||||
smartenv.obs.replace("myTestObject", { key1: "Klaus" });
|
|
||||||
beautylog.log(smartenv.obs.get("myTestObject").key1); // this should be 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
|
|
||||||
var key2 = "hello";
|
|
||||||
smartenv.obs.get("myTestObject").key2 = key2;
|
|
||||||
beautylog.log(smartenv.obs.get("myTestObject").key2);
|
|
||||||
beautylog.success("Success!");
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0RBQWdEO0FBQ2hELElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzNDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNyQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7QUFFcEIsdUJBQXVCO0FBQ3ZCLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBQyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0FBQ2hELFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBQyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0FBQzdFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNwQixTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0FBRTdFLDJCQUEyQjtBQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQztBQUNwRCxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0FBRTdFLHlCQUF5QjtBQUN6QixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQztBQUNsRCxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtBQUUxSCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUM7QUFDbkIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUM3QyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXJELFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMiLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi90cy90eXBpbmdzL21haW4uZC50c1wiIC8+XG52YXIgc21hcnRlbnYgPSByZXF1aXJlKFwiLi4vZGlzdC9pbmRleC5qc1wiKTtcbnZhciBiZWF1dHlsb2cgPSByZXF1aXJlKFwiYmVhdXR5bG9nXCIpO1xuc21hcnRlbnYucHJpbnRFbnYoKTtcblxuLy90ZXN0IHNtYXJ0ZW52Lm9icy5hZGRcbnNtYXJ0ZW52Lm9icy5hZGQoXCJteVRlc3RPYmplY3RcIix7a2V5MTpcIlBldGVyXCJ9KTtcbnNtYXJ0ZW52Lm9icy5hZGQoXCJteVRlc3RPYmplY3RcIix7a2V5MTpcIktsYXVzXCJ9KTsgLy9ub3cgdHJ5aW5nIHRvIGFkZCBhIHNlY29uZFxuc21hcnRlbnYucHJpbnRFbnYoKTtcbmJlYXV0eWxvZy5sb2coc21hcnRlbnYub2JzLmdldChcIm15VGVzdE9iamVjdFwiKS5rZXkxKTsgLy8gdGhpcyBzaG91bGQgYmUgUGV0ZXJcblxuLy90ZXN0IHNtYXJ0ZW52Lm9icy5yZXBsYWNlXG5zbWFydGVudi5vYnMucmVwbGFjZShcIm15VGVzdE9iamVjdFwiLHtrZXkxOlwiS2xhdXNcIn0pO1xuYmVhdXR5bG9nLmxvZyhzbWFydGVudi5vYnMuZ2V0KFwibXlUZXN0T2JqZWN0XCIpLmtleTEpOyAvLyB0aGlzIHNob3VsZCBiZSBLbGF1c1xuXG4vL3Rlc3Qgc21hcnRlbnYub2JzLm1lcmdlXG5zbWFydGVudi5vYnMubWVyZ2UoXCJteVRlc3RPYmplY3RcIix7a2V5MjpcIlBldGVyXCJ9KTtcbmJlYXV0eWxvZy5sb2coc21hcnRlbnYub2JzLmdldChcIm15VGVzdE9iamVjdFwiKS5rZXkxICsgc21hcnRlbnYub2JzLmdldChcIm15VGVzdE9iamVjdFwiKS5rZXkyKTsgLy8gdGhpcyBzaG91bGQgYmUgS2xhdXNQZXRlclxuXG52YXIga2V5MiA9IFwiaGVsbG9cIjtcbnNtYXJ0ZW52Lm9icy5nZXQoXCJteVRlc3RPYmplY3RcIikua2V5MiA9IGtleTI7XG5iZWF1dHlsb2cubG9nKHNtYXJ0ZW52Lm9icy5nZXQoXCJteVRlc3RPYmplY3RcIikua2V5Mik7XG5cbmJlYXV0eWxvZy5zdWNjZXNzKFwiU3VjY2VzcyFcIik7Il19
|
|
@ -1 +0,0 @@
|
|||||||
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,IAAI,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC3C,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAEpB,uBAAuB;AACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAC,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC;AAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAC,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC,CAAC,4BAA4B;AAC7E,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACpB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB;AAE7E,2BAA2B;AAC3B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAC,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC;AACpD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB;AAE7E,yBAAyB;AACzB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAC,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC;AAClD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B;AAE1H,IAAI,IAAI,GAAG,OAAO,CAAC;AACnB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;AAErD,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC"}
|
|
51
test/test.ts
51
test/test.ts
@ -1,24 +1,37 @@
|
|||||||
/// <reference path="../ts/typings/main.d.ts" />
|
import { tap, expect } from '@pushrocks/tapbundle';
|
||||||
var smartenv = require("../dist/index.js");
|
import * as smartenv from '../ts/index.js';
|
||||||
var beautylog = require("beautylog");
|
|
||||||
smartenv.printEnv();
|
|
||||||
|
|
||||||
//test smartenv.obs.add
|
let testEnv: smartenv.Smartenv;
|
||||||
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
|
|
||||||
|
|
||||||
//test smartenv.obs.replace
|
tap.test('should print env', async () => {
|
||||||
smartenv.obs.replace("myTestObject",{key1:"Klaus"});
|
testEnv = new smartenv.Smartenv();
|
||||||
beautylog.log(smartenv.obs.get("myTestObject").key1); // this should be Klaus
|
});
|
||||||
|
|
||||||
//test smartenv.obs.merge
|
tap.test('should print a overview to console', async () => {
|
||||||
smartenv.obs.merge("myTestObject",{key2:"Peter"});
|
testEnv.printEnv();
|
||||||
beautylog.log(smartenv.obs.get("myTestObject").key1 + smartenv.obs.get("myTestObject").key2); // this should be KlausPeter
|
});
|
||||||
|
|
||||||
var key2 = "hello";
|
tap.test('should get os', async () => {
|
||||||
smartenv.obs.get("myTestObject").key2 = key2;
|
const resultMac = await testEnv.isMacAsync();
|
||||||
beautylog.log(smartenv.obs.get("myTestObject").key2);
|
const resultLinux = await testEnv.isLinuxAsync();
|
||||||
|
const resultWindows = await testEnv.isWindowsAsync();
|
||||||
|
const osModule = await import('os');
|
||||||
|
if (resultMac) {
|
||||||
|
expect(osModule.platform()).toEqual('darwin');
|
||||||
|
console.log('platform is Mac!');
|
||||||
|
} else if (resultLinux) {
|
||||||
|
expect(osModule.platform()).toEqual('linux');
|
||||||
|
console.log('platform is Linux!');
|
||||||
|
} else {
|
||||||
|
expect(osModule.platform()).toEqual('win32');
|
||||||
|
console.log('platform is Windows!');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
beautylog.success("Success!");
|
tap.test('should state wether we are in CI', async () => {
|
||||||
|
if (process.env.CI) {
|
||||||
|
expect(testEnv.isCI).toBeTrue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
tap.start();
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
/// <reference path="typings/tsd.d.ts" />
|
|
||||||
var plugins = {
|
|
||||||
beautylog: require("beautylog")("os"),
|
|
||||||
gulp: require("gulp"),
|
|
||||||
gulpBrowser: require("gulp-browser"),
|
|
||||||
easyserve: require("easyserve")
|
|
||||||
};
|
|
||||||
|
|
||||||
plugins.gulp.task('compileBrowserJS', function() {
|
|
||||||
var stream = plugins.gulp.src('test/browser/index.js')
|
|
||||||
.pipe(plugins.gulpBrowser.browserify())
|
|
||||||
.pipe(plugins.gulp.dest("test/browser/browserified/"));
|
|
||||||
return stream;
|
|
||||||
});
|
|
||||||
|
|
||||||
plugins.gulp.task('default',['compileBrowserJS'], function() {
|
|
||||||
plugins.beautylog.success('browserJS has been browserified');
|
|
||||||
plugins.easyserve("test/browser/");
|
|
||||||
});
|
|
||||||
|
|
||||||
plugins.gulp.start.apply(plugins.gulp, ['default']);
|
|
15
ts/index.ts
15
ts/index.ts
@ -1,14 +1 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
export * from './smartenv.classes.smartenv.js';
|
||||||
|
|
||||||
import * as plugins from "./smartenv.plugins";
|
|
||||||
import * as classes from "./smartenv.classes";
|
|
||||||
import * as SmartenvEnvironment from "./smartenv.environment";
|
|
||||||
import * as SmartenvObjectstorage from "./smartenv.objectstorage";
|
|
||||||
|
|
||||||
var smartenv = {
|
|
||||||
getEnv: SmartenvEnvironment.getEnv,
|
|
||||||
printEnv: SmartenvEnvironment.printEnv,
|
|
||||||
obs: SmartenvObjectstorage.obs
|
|
||||||
}; //create smartenv object
|
|
||||||
|
|
||||||
export = smartenv;
|
|
||||||
|
9
ts/interfaces/index.ts
Normal file
9
ts/interfaces/index.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export let defaultme = null;
|
||||||
|
declare global {
|
||||||
|
namespace NodeJS {
|
||||||
|
interface Global {
|
||||||
|
window: any;
|
||||||
|
navigator: any;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,53 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
|
|
||||||
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 {
|
|
||||||
return getEnvString() === "node"
|
|
||||||
};
|
|
||||||
|
|
||||||
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 isC9 = function(){
|
|
||||||
if (process.env.C9_HOSTNAME){
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export var isTravis = function(){
|
|
||||||
if(process.env.TRAVIS){
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
};
|
|
149
ts/smartenv.classes.smartenv.ts
Normal file
149
ts/smartenv.classes.smartenv.ts
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
import * as plugins from './smartenv.plugins.js';
|
||||||
|
import * as interfaces from './interfaces/index.js';
|
||||||
|
|
||||||
|
// interfaces
|
||||||
|
export interface IEnvObject {
|
||||||
|
name: string;
|
||||||
|
value: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 async getSafeNodeModule<T = any>(moduleNameArg: string): Promise<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(`return import('${moduleNameArg}')`))() as Promise<T>;
|
||||||
|
}
|
||||||
|
|
||||||
|
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';
|
||||||
|
} else if (typeof process !== 'undefined') {
|
||||||
|
return 'node';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public get isBrowser(): boolean {
|
||||||
|
return !this.isNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get userAgent(): string {
|
||||||
|
if (this.isBrowser) {
|
||||||
|
// make sure we are in Browser
|
||||||
|
return navigator.userAgent;
|
||||||
|
} else {
|
||||||
|
return 'undefined';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public get isNode(): boolean {
|
||||||
|
return this.runtimeEnv === 'node';
|
||||||
|
}
|
||||||
|
|
||||||
|
public get nodeVersion(): string {
|
||||||
|
return process.version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get isCI(): boolean {
|
||||||
|
if (this.isNode) {
|
||||||
|
if (process.env.CI) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async isMacAsync(): Promise<boolean> {
|
||||||
|
if (this.isNode) {
|
||||||
|
const os = await this.getSafeNodeModule('os');
|
||||||
|
return os.platform() === 'darwin';
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async isWindowsAsync(): Promise<boolean> {
|
||||||
|
if (this.isNode) {
|
||||||
|
const os = await this.getSafeNodeModule('os');
|
||||||
|
return os.platform() === 'win32';
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async isLinuxAsync(): Promise<boolean> {
|
||||||
|
if (this.isNode) {
|
||||||
|
const os = await this.getSafeNodeModule('os');
|
||||||
|
return os.platform() === 'linux';
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* prints the environment to console
|
||||||
|
*/
|
||||||
|
public async printEnv() {
|
||||||
|
if (this.isNode) {
|
||||||
|
console.log('running on NODE');
|
||||||
|
console.log(
|
||||||
|
'node version is ' + this.nodeVersion
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
console.log('running on BROWSER');
|
||||||
|
console.log('browser is ' + this.userAgent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,23 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
|
|
||||||
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,39 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
/**
|
|
||||||
* Deals with the environment the current JS script is running in.
|
|
||||||
*/
|
|
||||||
import plugins = require("./smartenv.plugins");
|
|
||||||
import classes = require("./smartenv.classes");
|
|
||||||
import objectStorage = require("./smartenv.objectstorage");
|
|
||||||
|
|
||||||
|
|
||||||
var environment:classes.Environment;
|
|
||||||
var 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");
|
|
||||||
var 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()));
|
|
||||||
};
|
|
@ -1,40 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
import plugins = require("./smartenv.plugins");
|
|
||||||
export var obs:any = {
|
|
||||||
add: function(paramNameArg = "undefined",objectArg = "undefined") {
|
|
||||||
if (paramNameArg == "undefined"){
|
|
||||||
console.log("paramName is undefined");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (objectArg == "undefined"){
|
|
||||||
console.log("objectArg is undefined");
|
|
||||||
}
|
|
||||||
if (typeof obsItems[paramNameArg] === "undefined"){
|
|
||||||
obsItems[paramNameArg] = objectArg;
|
|
||||||
} else {
|
|
||||||
console.log("object is already present, so add operation has failed.");
|
|
||||||
}
|
|
||||||
return obsItems[paramNameArg];
|
|
||||||
},
|
|
||||||
replace: function(paramNameArg,objectArg){
|
|
||||||
obsItems[paramNameArg] = objectArg;
|
|
||||||
},
|
|
||||||
merge: function(paramNameArg,objectArg){
|
|
||||||
if(!(typeof obsItems[paramNameArg] === "undefined")){
|
|
||||||
obsItems[paramNameArg] = plugins._.assign(obsItems[paramNameArg],objectArg);
|
|
||||||
} else {
|
|
||||||
console.log("object is not present, so there is nothing to merge");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
get: function(keyName) {
|
|
||||||
return obsItems[keyName];
|
|
||||||
},
|
|
||||||
getAll: function () {
|
|
||||||
return obsItems;
|
|
||||||
},
|
|
||||||
addComplete: function(itemsArg) {
|
|
||||||
obsItems = plugins._.assign(obsItems,itemsArg);
|
|
||||||
return obsItems;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
export var obsItems:any = {};
|
|
@ -1,7 +1,3 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
import * as smartpromise from '@pushrocks/smartpromise';
|
||||||
var plugins = {
|
|
||||||
Q: require("q"),
|
|
||||||
_: require("lodash")
|
|
||||||
};
|
|
||||||
|
|
||||||
export = plugins;
|
export { smartpromise };
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"ambientDependencies": {
|
|
||||||
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts"
|
|
||||||
}
|
|
||||||
}
|
|
17
tslint.json
Normal file
17
tslint.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"extends": ["tslint:latest", "tslint-config-prettier"],
|
||||||
|
"rules": {
|
||||||
|
"semicolon": [true, "always"],
|
||||||
|
"no-console": false,
|
||||||
|
"ordered-imports": false,
|
||||||
|
"object-literal-sort-keys": false,
|
||||||
|
"member-ordering": {
|
||||||
|
"options":{
|
||||||
|
"order": [
|
||||||
|
"static-method"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultSeverity": "warning"
|
||||||
|
}
|
Reference in New Issue
Block a user