Compare commits
91 Commits
Author | SHA1 | Date | |
---|---|---|---|
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 | |||
324abf821e | |||
fde407a762 | |||
c9ac84954f | |||
e0b4a93f1c | |||
70015b5ffc | |||
5a4d47411a | |||
1730706034 | |||
7ecf342548 | |||
7f10392757 | |||
9e229eee85 | |||
74c2c87f22 | |||
0e0ee89263 | |||
a0e8f2f5e2 | |||
043c5a0c6e | |||
a1d5b4fc4e | |||
cd0b8f18af | |||
d5387ddc05 | |||
3487b348df | |||
81036f8da3 | |||
b1464d97bf | |||
5636cf330e | |||
2e8b49fa18 | |||
df6036fbf1 | |||
8ec33947b6 | |||
50100115a6 | |||
8251e878c2 | |||
4a18d648c6 | |||
f9b89cc9db | |||
190aab3a11 | |||
cd26fffaf2 | |||
c2e48fa8b9 | |||
0db5ec169a | |||
0a29fafaeb | |||
0806fa9714 | |||
ef00c0d180 |
25
.gitignore
vendored
25
.gitignore
vendored
@ -1,13 +1,20 @@
|
|||||||
node_modules/
|
.nogit/
|
||||||
.settings/
|
|
||||||
.idea/
|
# artifacts
|
||||||
coverage/
|
coverage/
|
||||||
|
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
|
4
.npmignore
Normal file
4
.npmignore
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
node_modules/
|
||||||
|
coverage/
|
||||||
|
test/
|
||||||
|
ts/typings/
|
16
.travis.yml
16
.travis.yml
@ -1,16 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- 4.2.2
|
|
||||||
before_install:
|
|
||||||
- npm install -g tsd
|
|
||||||
deploy:
|
|
||||||
provider: npm
|
|
||||||
email: npm@smart-coordination.com
|
|
||||||
api_key:
|
|
||||||
secure: uNjLbNelm8nj9R/tRlwRvcXWLS1QtA0QEbDKPDTWHNo68wAHgdwXIdzkVkNcihZYVasR/LqGuSLfzoD4H8mKmCXD+v85h048VmmtWniZQRp/OVWl0uzRwDDryhiYlhY5U9oOFEQsMO96C8qPqcGchq+DA7Gi3ZnAl7pmeb54xp9H+7jmLyZTyO8Hq00anV5PopBOW23mZEnWHznzYeg83BlWmLdbyfyZKT4W5Urg1BAMgxt9PdtrQoiPy4LP6AHXG88kvY3Iz8OBG+h/06bura8MPfeupGoktodN9krb+sRE/COybATWImMh9Z5gI5TWqUR7tp7XivpgolYY41gaN93oUQ9EOTdJ5kFku1dnPrNFqXO/97slVTMR6fMMgRXwzTz6BiKI1NsAZeW7oLUONw06APZ6VBhVY6Po3Rioun8OE9Q0wXm/BvnRqVHt3sew4MIgmEBwQSQE14gLJGGgNojzmcPstc0czQp+kzV5DpGiW3IWIWZ7MsBJOOJ13RHeb6koFdBR7JZj0QzzBcWD7juJVOS45MlP7hU/sKRDO/fN3nu8TNwHvJab6XYP5/gqlbh/3h2vb7bxyDXiKGi2Ds8hZOHoyWoCrU3sbH3eKKkKo+LFI3J7PbY11T6TkSAdszLsQzcvC2QlsGQRWVywYMm32R6BVfxF3AlLX5a8JsI=
|
|
||||||
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"
|
|
||||||
```
|
|
3
dist/index.d.ts
vendored
3
dist/index.d.ts
vendored
@ -1,3 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
declare var smartenv: any;
|
|
||||||
export = smartenv;
|
|
11
dist/index.js
vendored
11
dist/index.js
vendored
@ -1,11 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
var SmartenvEnvironment = require("./smartenv.environment");
|
|
||||||
var SmartenvObjectStorage = require("./smartenv.objectstorage");
|
|
||||||
var smartenv = {}; //create smartenv object
|
|
||||||
SmartenvEnvironment.init(smartenv);
|
|
||||||
smartenv.obs = SmartenvObjectStorage.obs;
|
|
||||||
module.exports = smartenv;
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQztBQUUxQyxJQUFPLG1CQUFtQixXQUFXLHdCQUF3QixDQUFDLENBQUM7QUFDL0QsSUFBTyxxQkFBcUIsV0FBVywwQkFBMEIsQ0FBQyxDQUFDO0FBRW5FLElBQUksUUFBUSxHQUFPLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtBQUMvQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbkMsUUFBUSxDQUFDLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7QUFFekMsaUJBQVMsUUFBUSxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cblxuaW1wb3J0IFNtYXJ0ZW52RW52aXJvbm1lbnQgPSByZXF1aXJlKFwiLi9zbWFydGVudi5lbnZpcm9ubWVudFwiKTtcbmltcG9ydCBTbWFydGVudk9iamVjdFN0b3JhZ2UgPSByZXF1aXJlKFwiLi9zbWFydGVudi5vYmplY3RzdG9yYWdlXCIpO1xuXG52YXIgc21hcnRlbnY6YW55ID0ge307IC8vY3JlYXRlIHNtYXJ0ZW52IG9iamVjdFxuU21hcnRlbnZFbnZpcm9ubWVudC5pbml0KHNtYXJ0ZW52KTtcbnNtYXJ0ZW52Lm9icyA9IFNtYXJ0ZW52T2JqZWN0U3RvcmFnZS5vYnM7XG5cbmV4cG9ydCA9IHNtYXJ0ZW52O1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
|
|
9
dist/smartenv.classes.d.ts
vendored
9
dist/smartenv.classes.d.ts
vendored
@ -1,9 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
export declare class Environment {
|
|
||||||
runtimeEnv: string;
|
|
||||||
userAgent: string;
|
|
||||||
nodeVersion: string;
|
|
||||||
isBrowser: boolean;
|
|
||||||
isNode: boolean;
|
|
||||||
constructor(runtimeEnvArg: string, userAgentArg?: string);
|
|
||||||
}
|
|
25
dist/smartenv.classes.js
vendored
25
dist/smartenv.classes.js
vendored
@ -1,25 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
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";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
;
|
|
||||||
return Environment;
|
|
||||||
})();
|
|
||||||
exports.Environment = Environment;
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmNsYXNzZXMudHMiXSwibmFtZXMiOlsiRW52aXJvbm1lbnQiLCJFbnZpcm9ubWVudC5jb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDO0lBTUlBLHFCQUFZQSxhQUFvQkEsRUFBQ0EsWUFBaUNBO1FBQWpDQyw0QkFBaUNBLEdBQWpDQSwwQkFBaUNBO1FBQzlEQSxJQUFJQSxDQUFDQSxVQUFVQSxHQUFHQSxhQUFhQSxDQUFDQTtRQUNoQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsR0FBR0EsWUFBWUEsQ0FBQ0E7UUFDOUJBLEVBQUVBLENBQUFBLENBQUNBLGFBQWFBLElBQUlBLE1BQU1BLENBQUNBLENBQUFBLENBQUNBO1lBQ3hCQSxJQUFJQSxDQUFDQSxTQUFTQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUN2QkEsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDbkJBLElBQUlBLENBQUNBLFdBQVdBLEdBQUdBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBO1FBQ3ZDQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxhQUFhQSxJQUFJQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNwQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDdEJBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBO1lBQ3BCQSxJQUFJQSxDQUFDQSxXQUFXQSxHQUFHQSxXQUFXQSxDQUFDQTtRQUNuQ0EsQ0FBQ0E7SUFDTEEsQ0FBQ0E7O0lBQ0xELGtCQUFDQTtBQUFEQSxDQW5CQSxBQW1CQ0EsSUFBQTtBQW5CWSxtQkFBVyxjQW1CdkIsQ0FBQSIsImZpbGUiOiJzbWFydGVudi5jbGFzc2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudCB7XG4gICAgcHVibGljIHJ1bnRpbWVFbnY6c3RyaW5nO1xuICAgIHB1YmxpYyB1c2VyQWdlbnQ6c3RyaW5nO1xuICAgIHB1YmxpYyBub2RlVmVyc2lvbjpzdHJpbmc7XG4gICAgcHVibGljIGlzQnJvd3Nlcjpib29sZWFuO1xuICAgIHB1YmxpYyBpc05vZGU6Ym9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihydW50aW1lRW52QXJnOnN0cmluZyx1c2VyQWdlbnRBcmc6c3RyaW5nID0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICB0aGlzLnJ1bnRpbWVFbnYgPSBydW50aW1lRW52QXJnO1xuICAgICAgICB0aGlzLnVzZXJBZ2VudCA9IHVzZXJBZ2VudEFyZztcbiAgICAgICAgaWYocnVudGltZUVudkFyZyA9PSBcIm5vZGVcIil7XG4gICAgICAgICAgICB0aGlzLmlzQnJvd3NlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc05vZGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub2RlVmVyc2lvbiA9IHByb2Nlc3MudmVyc2lvbjtcbiAgICAgICAgfSBlbHNlIGlmIChydW50aW1lRW52QXJnID09IFwiYnJvd3NlclwiKSB7XG4gICAgICAgICAgICB0aGlzLmlzQnJvd3NlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzTm9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5ub2RlVmVyc2lvbiA9IFwidW5kZWZpbmVkXCI7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
|
|
2
dist/smartenv.environment.d.ts
vendored
2
dist/smartenv.environment.d.ts
vendored
@ -1,2 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
export declare var init: (objectArg: any) => void;
|
|
56
dist/smartenv.environment.js
vendored
56
dist/smartenv.environment.js
vendored
@ -1,56 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
/**
|
|
||||||
* Deals with the environment the current JS script is running in.
|
|
||||||
*/
|
|
||||||
var plugins = require("./smartenv.plugins");
|
|
||||||
var SmartenvClasses = require("./smartenv.classes");
|
|
||||||
var SmartenvObjectStorage = require("./smartenv.objectstorage");
|
|
||||||
var environment;
|
|
||||||
var envDetermined = false;
|
|
||||||
/**
|
|
||||||
* returns the environment
|
|
||||||
* @returns {Environment}
|
|
||||||
*/
|
|
||||||
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 SmartenvClasses.Environment(localRunTimeEnv, localUserAgent);
|
|
||||||
})();
|
|
||||||
envDetermined = true; // ensure code above only runs once
|
|
||||||
}
|
|
||||||
;
|
|
||||||
return environment;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* prints the environment to console
|
|
||||||
*/
|
|
||||||
var printEnv = function () {
|
|
||||||
if (this.getEnv().isNode) {
|
|
||||||
plugins.beautylog.ok("running on NODE");
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
plugins.beautylog.log("the smartenv registration store currently holds the following properties:");
|
|
||||||
console.log(Object.getOwnPropertyNames(SmartenvObjectStorage.obs.getAll()));
|
|
||||||
};
|
|
||||||
exports.init = function (objectArg) {
|
|
||||||
objectArg.getEnv = getEnv;
|
|
||||||
objectArg.printEnv = printEnv;
|
|
||||||
};
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQztBQUMxQzs7R0FFRztBQUNILElBQU8sT0FBTyxXQUFXLG9CQUFvQixDQUFDLENBQUM7QUFDL0MsSUFBTyxlQUFlLFdBQVcsb0JBQW9CLENBQUMsQ0FBQztBQUN2RCxJQUFPLHFCQUFxQixXQUFXLDBCQUEwQixDQUFDLENBQUM7QUFHbkUsSUFBSSxXQUF1QyxDQUFDO0FBQzVDLElBQUksYUFBYSxHQUFXLEtBQUssQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxJQUFJLE1BQU0sR0FBRztJQUNULEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDO1lBQ0csSUFBSSxlQUFlLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLElBQUksY0FBYyxHQUFHLFdBQVcsQ0FBQztZQUNqQyxFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxlQUFlLEdBQUcsU0FBUyxDQUFDO2dCQUM1QixjQUFjLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLGVBQWUsR0FBRyxNQUFNLENBQUM7WUFDN0IsQ0FBQztZQUNELFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDTCxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsbUNBQW1DO0lBQzdELENBQUM7SUFBQSxDQUFDO0lBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILElBQUssUUFBUSxHQUFHO0lBQ1osRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxJQUFJLGVBQWUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsR0FBRywyQkFBMkIsR0FBRyxlQUFlLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7SUFDbkcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDLENBQUM7QUFFUyxZQUFJLEdBQUcsVUFBUyxTQUFTO0lBQ2hDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQzFCLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ2xDLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGVudi5lbnZpcm9ubWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL21haW4uZC50c1wiIC8+XG4vKipcbiAqIERlYWxzIHdpdGggdGhlIGVudmlyb25tZW50IHRoZSBjdXJyZW50IEpTIHNjcmlwdCBpcyBydW5uaW5nIGluLlxuICovXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LnBsdWdpbnNcIik7XG5pbXBvcnQgU21hcnRlbnZDbGFzc2VzID0gcmVxdWlyZShcIi4vc21hcnRlbnYuY2xhc3Nlc1wiKTtcbmltcG9ydCBTbWFydGVudk9iamVjdFN0b3JhZ2UgPSByZXF1aXJlKFwiLi9zbWFydGVudi5vYmplY3RzdG9yYWdlXCIpO1xuXG5cbnZhciBlbnZpcm9ubWVudDpTbWFydGVudkNsYXNzZXMuRW52aXJvbm1lbnQ7XG52YXIgZW52RGV0ZXJtaW5lZDpib29sZWFuID0gZmFsc2U7XG5cbi8qKlxuICogcmV0dXJucyB0aGUgZW52aXJvbm1lbnRcbiAqIEByZXR1cm5zIHtFbnZpcm9ubWVudH1cbiAqL1xudmFyIGdldEVudiA9IGZ1bmN0aW9uKCl7XG4gICAgaWYgKCFlbnZEZXRlcm1pbmVkKSB7XG4gICAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBsb2NhbFJ1blRpbWVFbnYgPSBcInVuZGVmaW5lZFwiO1xuICAgICAgICAgICAgdmFyIGxvY2FsVXNlckFnZW50ID0gXCJ1bmRlZmluZWRcIjtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxSdW5UaW1lRW52ID0gJ2Jyb3dzZXInO1xuICAgICAgICAgICAgICAgIGxvY2FsVXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICBsb2NhbFJ1blRpbWVFbnYgPSAnbm9kZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbnZpcm9ubWVudCA9IG5ldyBTbWFydGVudkNsYXNzZXMuRW52aXJvbm1lbnQobG9jYWxSdW5UaW1lRW52LGxvY2FsVXNlckFnZW50KTtcbiAgICAgICAgfSkoKTtcbiAgICAgICAgZW52RGV0ZXJtaW5lZCA9IHRydWU7IC8vIGVuc3VyZSBjb2RlIGFib3ZlIG9ubHkgcnVucyBvbmNlXG4gICAgfTtcbiAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG59O1xuXG4vKipcbiAqIHByaW50cyB0aGUgZW52aXJvbm1lbnQgdG8gY29uc29sZVxuICovXG52YXIgIHByaW50RW52ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuZ2V0RW52KCkuaXNOb2RlKSB7XG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLm9rKFwicnVubmluZyBvbiBOT0RFXCIpO1xuICAgICAgICB2YXIgc21hcnRlbnZWZXJzaW9uID0gcmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKS52ZXJzaW9uO1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJub2RlIHZlcnNpb24gaXMgXCIgKyB0aGlzLmdldEVudigpLm5vZGVWZXJzaW9uICsgXCIgYW5kIHNtYXJ0ZW52IHZlcnNpb24gaXMgXCIgKyBzbWFydGVudlZlcnNpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLm9rKFwicnVubmluZyBvbiBCUk9XU0VSXCIpO1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJicm93c2VyIGlzIFwiICsgdGhpcy5nZXRFbnYoKS51c2VyQWdlbnQpO1xuICAgIH1cbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJ0aGUgc21hcnRlbnYgcmVnaXN0cmF0aW9uIHN0b3JlIGN1cnJlbnRseSBob2xkcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XCIpO1xuICAgIGNvbnNvbGUubG9nKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFNtYXJ0ZW52T2JqZWN0U3RvcmFnZS5vYnMuZ2V0QWxsKCkpKTtcbn07XG5cbmV4cG9ydCB2YXIgaW5pdCA9IGZ1bmN0aW9uKG9iamVjdEFyZykge1xuICAgIG9iamVjdEFyZy5nZXRFbnYgPSBnZXRFbnY7XG4gICAgb2JqZWN0QXJnLnByaW50RW52ID0gcHJpbnRFbnY7XG59OyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
|
|
3
dist/smartenv.objectstorage.d.ts
vendored
3
dist/smartenv.objectstorage.d.ts
vendored
@ -1,3 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
export declare var obs: any;
|
|
||||||
export declare var obsItems: any;
|
|
48
dist/smartenv.objectstorage.js
vendored
48
dist/smartenv.objectstorage.js
vendored
@ -1,48 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
/// <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") {
|
|
||||||
plugins.beautylog.error("paramName is undefined");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (objectArg == "undefined") {
|
|
||||||
plugins.beautylog.error("objectArg is undefined");
|
|
||||||
}
|
|
||||||
if (typeof exports.obsItems[paramNameArg] === "undefined") {
|
|
||||||
exports.obsItems[paramNameArg] = objectArg;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
plugins.beautylog.error("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 {
|
|
||||||
plugins.beautylog.error("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;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLElBQU8sT0FBTyxXQUFXLG9CQUFvQixDQUFDLENBQUM7QUFFcEMsV0FBRyxHQUFPO0lBQ2pCLEdBQUcsRUFBRSxVQUFTLFlBQTBCLEVBQUMsU0FBdUI7UUFBbEQsNEJBQTBCLEdBQTFCLDBCQUEwQjtRQUFDLHlCQUF1QixHQUF2Qix1QkFBdUI7UUFDNUQsRUFBRSxDQUFDLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7WUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUNsRCxNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7WUFDMUIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsT0FBTyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFBLENBQUM7WUFDL0MsZ0JBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDdkMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztRQUN2RixDQUFDO1FBQ0QsTUFBTSxDQUFDLGdCQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8sRUFBRSxVQUFTLFlBQVksRUFBQyxTQUFTO1FBQ3BDLGdCQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxLQUFLLEVBQUUsVUFBUyxZQUFZLEVBQUMsU0FBUztRQUNsQyxFQUFFLENBQUEsQ0FBQyxDQUFDLENBQUMsT0FBTyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUNqRCxnQkFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFRLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUNuRixDQUFDO0lBQ0wsQ0FBQztJQUNELEdBQUcsRUFBRSxVQUFTLE9BQU87UUFDakIsTUFBTSxDQUFDLGdCQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE1BQU0sRUFBRTtRQUNKLE1BQU0sQ0FBQyxnQkFBUSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxXQUFXLEVBQUUsVUFBUyxRQUFRO1FBQzFCLGdCQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxNQUFNLENBQUMsZ0JBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0osQ0FBQztBQUNTLGdCQUFRLEdBQU8sRUFBRSxDQUFDIiwiZmlsZSI6InNtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9tYWluLmQudHNcIiAvPlxuaW1wb3J0IHBsdWdpbnMgPSByZXF1aXJlKFwiLi9zbWFydGVudi5wbHVnaW5zXCIpO1xuXG5leHBvcnQgdmFyIG9iczphbnkgPSB7XG4gICAgYWRkOiBmdW5jdGlvbihwYXJhbU5hbWVBcmcgPSBcInVuZGVmaW5lZFwiLG9iamVjdEFyZyA9IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHBhcmFtTmFtZUFyZyA9PSBcInVuZGVmaW5lZFwiKXtcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmVycm9yKFwicGFyYW1OYW1lIGlzIHVuZGVmaW5lZFwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqZWN0QXJnID09IFwidW5kZWZpbmVkXCIpe1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuZXJyb3IoXCJvYmplY3RBcmcgaXMgdW5kZWZpbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb2JzSXRlbXNbcGFyYW1OYW1lQXJnXSA9PT0gXCJ1bmRlZmluZWRcIil7XG4gICAgICAgICAgICBvYnNJdGVtc1twYXJhbU5hbWVBcmddID0gb2JqZWN0QXJnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuZXJyb3IoXCJvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50LCBzbyBhZGQgb3BlcmF0aW9uIGhhcyBmYWlsZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYnNJdGVtc1twYXJhbU5hbWVBcmddO1xuICAgIH0sXG4gICAgcmVwbGFjZTogZnVuY3Rpb24ocGFyYW1OYW1lQXJnLG9iamVjdEFyZyl7XG4gICAgICAgIG9ic0l0ZW1zW3BhcmFtTmFtZUFyZ10gPSBvYmplY3RBcmc7XG4gICAgfSxcbiAgICBtZXJnZTogZnVuY3Rpb24ocGFyYW1OYW1lQXJnLG9iamVjdEFyZyl7XG4gICAgICAgIGlmKCEodHlwZW9mIG9ic0l0ZW1zW3BhcmFtTmFtZUFyZ10gPT09IFwidW5kZWZpbmVkXCIpKXtcbiAgICAgICAgICAgIG9ic0l0ZW1zW3BhcmFtTmFtZUFyZ10gPSBwbHVnaW5zLl8uYXNzaWduKG9ic0l0ZW1zW3BhcmFtTmFtZUFyZ10sb2JqZWN0QXJnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmVycm9yKFwib2JqZWN0IGlzIG5vdCBwcmVzZW50LCBzbyB0aGVyZSBpcyBub3RoaW5nIHRvIG1lcmdlXCIpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXQ6IGZ1bmN0aW9uKGtleU5hbWUpIHtcbiAgICAgICAgcmV0dXJuIG9ic0l0ZW1zW2tleU5hbWVdO1xuICAgIH0sXG4gICAgZ2V0QWxsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBvYnNJdGVtcztcbiAgICB9LFxuICAgIGFkZENvbXBsZXRlOiBmdW5jdGlvbihpdGVtc0FyZykge1xuICAgICAgICBvYnNJdGVtcyA9IHBsdWdpbnMuXy5hc3NpZ24ob2JzSXRlbXMsaXRlbXNBcmcpO1xuICAgICAgICByZXR1cm4gb2JzSXRlbXM7XG4gICAgfVxufTtcbmV4cG9ydCB2YXIgb2JzSXRlbXM6YW55ID0ge307Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
|
|
3
dist/smartenv.plugins.d.ts
vendored
3
dist/smartenv.plugins.d.ts
vendored
@ -1,3 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
export declare var beautylog: any;
|
|
||||||
export declare var _: any;
|
|
7
dist/smartenv.plugins.js
vendored
7
dist/smartenv.plugins.js
vendored
@ -1,7 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
exports.beautylog = require("beautylog");
|
|
||||||
exports._ = require("lodash");
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQy9CLGlCQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLFNBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMiLCJmaWxlIjoic21hcnRlbnYucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL21haW4uZC50c1wiIC8+XG5leHBvcnQgdmFyIGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgdmFyIF8gPSByZXF1aXJlKFwibG9kYXNoXCIpOyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
|
|
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",
|
||||||
|
"shortDescription": "store things about your environment and let them travel across modules",
|
||||||
|
"npmPackagename": "@pushrocks/smartenv",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"mode":"default",
|
|
||||||
"coveralls":true
|
|
||||||
}
|
|
11226
package-lock.json
generated
Normal file
11226
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
53
package.json
53
package.json
@ -1,33 +1,56 @@
|
|||||||
{
|
{
|
||||||
"name": "smartenv",
|
"name": "@pushrocks/smartenv",
|
||||||
"version": "1.0.1",
|
"version": "4.0.11",
|
||||||
"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_ts/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(npmts)",
|
"test": "(tstest test/ --web)",
|
||||||
|
"build": "(tsbuild --web && 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": "^2.1.1",
|
"@pushrocks/smartparam": "^1.1.6",
|
||||||
"lodash": "^4.5.0"
|
"@pushrocks/smartpromise": "^3.0.6",
|
||||||
|
"@types/node": "^14.11.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"easyserve": "0.0.5",
|
"@gitzone/tsbuild": "^2.1.25",
|
||||||
"gulp": "^3.9.1",
|
"@gitzone/tsbundle": "^1.0.78",
|
||||||
"gulp-browser": "1.0.10",
|
"@gitzone/tsrun": "^1.2.12",
|
||||||
"npmts": "^3.0.1"
|
"@gitzone/tstest": "^1.0.44",
|
||||||
}
|
"@pushrocks/tapbundle": "^3.2.9",
|
||||||
|
"@types/npm": "^2.0.31",
|
||||||
|
"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();
|
|
4
test/test.d.ts
vendored
4
test/test.d.ts
vendored
@ -1,4 +0,0 @@
|
|||||||
/// <reference path="../ts/typings/main.d.ts" />
|
|
||||||
declare var smartenv: any;
|
|
||||||
declare var beautylog: any;
|
|
||||||
declare var key2: string;
|
|
25
test/test.js
25
test/test.js
@ -1,25 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
/// <reference path="../ts/typings/main.d.ts" />
|
|
||||||
var smartenv = require("../dist/index.js");
|
|
||||||
var beautylog = require("beautylog");
|
|
||||||
beautylog.info("Now testing the smartenv module");
|
|
||||||
smartenv.printEnv();
|
|
||||||
beautylog.info("Now testing the smartenv module");
|
|
||||||
//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;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0RBQWdEO0FBQ2hELElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzNDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNyQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFDbEQsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3BCLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUVsRCx1QkFBdUI7QUFDdkIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFDLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7QUFDaEQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFDLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7QUFDN0UsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3BCLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7QUFFN0UsMkJBQTJCO0FBQzNCLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBQyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0FBQ3BELFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7QUFFN0UseUJBQXlCO0FBQ3pCLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBQyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0FBQ2xELFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0FBRTFILElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQztBQUNuQixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQzdDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFckQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3RzL3R5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbnZhciBzbWFydGVudiA9IHJlcXVpcmUoXCIuLi9kaXN0L2luZGV4LmpzXCIpO1xudmFyIGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5iZWF1dHlsb2cuaW5mbyhcIk5vdyB0ZXN0aW5nIHRoZSBzbWFydGVudiBtb2R1bGVcIik7XG5zbWFydGVudi5wcmludEVudigpO1xuYmVhdXR5bG9nLmluZm8oXCJOb3cgdGVzdGluZyB0aGUgc21hcnRlbnYgbW9kdWxlXCIpO1xuXG4vL3Rlc3Qgc21hcnRlbnYub2JzLmFkZFxuc21hcnRlbnYub2JzLmFkZChcIm15VGVzdE9iamVjdFwiLHtrZXkxOlwiUGV0ZXJcIn0pO1xuc21hcnRlbnYub2JzLmFkZChcIm15VGVzdE9iamVjdFwiLHtrZXkxOlwiS2xhdXNcIn0pOyAvL25vdyB0cnlpbmcgdG8gYWRkIGEgc2Vjb25kXG5zbWFydGVudi5wcmludEVudigpO1xuYmVhdXR5bG9nLmxvZyhzbWFydGVudi5vYnMuZ2V0KFwibXlUZXN0T2JqZWN0XCIpLmtleTEpOyAvLyB0aGlzIHNob3VsZCBiZSBQZXRlclxuXG4vL3Rlc3Qgc21hcnRlbnYub2JzLnJlcGxhY2VcbnNtYXJ0ZW52Lm9icy5yZXBsYWNlKFwibXlUZXN0T2JqZWN0XCIse2tleTE6XCJLbGF1c1wifSk7XG5iZWF1dHlsb2cubG9nKHNtYXJ0ZW52Lm9icy5nZXQoXCJteVRlc3RPYmplY3RcIikua2V5MSk7IC8vIHRoaXMgc2hvdWxkIGJlIEtsYXVzXG5cbi8vdGVzdCBzbWFydGVudi5vYnMubWVyZ2VcbnNtYXJ0ZW52Lm9icy5tZXJnZShcIm15VGVzdE9iamVjdFwiLHtrZXkyOlwiUGV0ZXJcIn0pO1xuYmVhdXR5bG9nLmxvZyhzbWFydGVudi5vYnMuZ2V0KFwibXlUZXN0T2JqZWN0XCIpLmtleTEgKyBzbWFydGVudi5vYnMuZ2V0KFwibXlUZXN0T2JqZWN0XCIpLmtleTIpOyAvLyB0aGlzIHNob3VsZCBiZSBLbGF1c1BldGVyXG5cbnZhciBrZXkyID0gXCJoZWxsb1wiO1xuc21hcnRlbnYub2JzLmdldChcIm15VGVzdE9iamVjdFwiKS5rZXkyID0ga2V5MjtcbmJlYXV0eWxvZy5sb2coc21hcnRlbnYub2JzLmdldChcIm15VGVzdE9iamVjdFwiKS5rZXkyKTtcblxuYmVhdXR5bG9nLnN1Y2Nlc3MoXCJTdWNjZXNzIVwiKTsiXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
|
|
@ -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,SAAS,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;AAClD,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACpB,SAAS,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;AAElD,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"}
|
|
53
test/test.ts
53
test/test.ts
@ -1,26 +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';
|
||||||
var beautylog = require("beautylog");
|
|
||||||
beautylog.info("Now testing the smartenv module");
|
|
||||||
smartenv.printEnv();
|
|
||||||
beautylog.info("Now testing the smartenv module");
|
|
||||||
|
|
||||||
//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()).to.equal('darwin');
|
||||||
|
console.log('platform is Mac!');
|
||||||
|
} else if (resultLinux) {
|
||||||
|
expect(osModule.platform()).to.equal('linux');
|
||||||
|
console.log('platform is Linux!');
|
||||||
|
} else {
|
||||||
|
expect(osModule.platform()).to.equal('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).to.be.true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
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']);
|
|
11
ts/index.ts
11
ts/index.ts
@ -1,10 +1 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
export * from './smartenv.classes.smartenv';
|
||||||
|
|
||||||
import SmartenvEnvironment = require("./smartenv.environment");
|
|
||||||
import SmartenvObjectStorage = require("./smartenv.objectstorage");
|
|
||||||
|
|
||||||
var smartenv:any = {}; //create smartenv object
|
|
||||||
SmartenvEnvironment.init(smartenv);
|
|
||||||
smartenv.obs = SmartenvObjectStorage.obs;
|
|
||||||
|
|
||||||
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
117
ts/smartenv.classes.smartenv.ts
Normal file
117
ts/smartenv.classes.smartenv.ts
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
import * as plugins from './smartenv.plugins';
|
||||||
|
import * as interfaces from './interfaces';
|
||||||
|
|
||||||
|
// interfaces
|
||||||
|
export interface IEnvObject {
|
||||||
|
name: string;
|
||||||
|
value: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Smartenv class that makes it easy
|
||||||
|
*/
|
||||||
|
export class Smartenv {
|
||||||
|
public getSafeNodeModule<T = any>(moduleNameArg: string): T {
|
||||||
|
// tslint:disable-next-line: function-constructor
|
||||||
|
return new Function(
|
||||||
|
'exports',
|
||||||
|
'require',
|
||||||
|
'module',
|
||||||
|
'__filename',
|
||||||
|
'__dirname',
|
||||||
|
`return require('${moduleNameArg}')`
|
||||||
|
)(exports, require, module, __filename, __dirname);
|
||||||
|
}
|
||||||
|
|
||||||
|
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 = this.getSafeNodeModule('os');
|
||||||
|
return os.platform() === 'darwin';
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async isWindowsAsync(): Promise<boolean> {
|
||||||
|
if (this.isNode) {
|
||||||
|
const os = this.getSafeNodeModule('os');
|
||||||
|
return os.platform() === 'win32';
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async isLinuxAsync(): Promise<boolean> {
|
||||||
|
if (this.isNode) {
|
||||||
|
const os = this.getSafeNodeModule('os');
|
||||||
|
return os.platform() === 'linux';
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get environment variables that fit the description
|
||||||
|
*/
|
||||||
|
// get envVars (regexArg: RegExp) {
|
||||||
|
// let EnvironmentArray = []
|
||||||
|
// // TODO: plugins.smartparam.forEachMinimatch()
|
||||||
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* prints the environment to console
|
||||||
|
*/
|
||||||
|
public async printEnv() {
|
||||||
|
if (this.isNode) {
|
||||||
|
console.log('running on NODE');
|
||||||
|
const smartenvVersion = require('../package.json').version;
|
||||||
|
console.log(
|
||||||
|
'node version is ' + this.nodeVersion + ' and smartenv version is ' + smartenvVersion
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
console.log('running on BROWSER');
|
||||||
|
console.log('browser is ' + this.userAgent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,21 +0,0 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
|
||||||
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";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,54 +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 SmartenvClasses = require("./smartenv.classes");
|
|
||||||
import SmartenvObjectStorage = require("./smartenv.objectstorage");
|
|
||||||
|
|
||||||
|
|
||||||
var environment:SmartenvClasses.Environment;
|
|
||||||
var envDetermined:boolean = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* returns the environment
|
|
||||||
* @returns {Environment}
|
|
||||||
*/
|
|
||||||
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 SmartenvClasses.Environment(localRunTimeEnv,localUserAgent);
|
|
||||||
})();
|
|
||||||
envDetermined = true; // ensure code above only runs once
|
|
||||||
};
|
|
||||||
return environment;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* prints the environment to console
|
|
||||||
*/
|
|
||||||
var printEnv = function() {
|
|
||||||
if (this.getEnv().isNode) {
|
|
||||||
plugins.beautylog.ok("running on NODE");
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
plugins.beautylog.log("the smartenv registration store currently holds the following properties:");
|
|
||||||
console.log(Object.getOwnPropertyNames(SmartenvObjectStorage.obs.getAll()));
|
|
||||||
};
|
|
||||||
|
|
||||||
export var init = function(objectArg) {
|
|
||||||
objectArg.getEnv = getEnv;
|
|
||||||
objectArg.printEnv = printEnv;
|
|
||||||
};
|
|
@ -1,41 +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"){
|
|
||||||
plugins.beautylog.error("paramName is undefined");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (objectArg == "undefined"){
|
|
||||||
plugins.beautylog.error("objectArg is undefined");
|
|
||||||
}
|
|
||||||
if (typeof obsItems[paramNameArg] === "undefined"){
|
|
||||||
obsItems[paramNameArg] = objectArg;
|
|
||||||
} else {
|
|
||||||
plugins.beautylog.error("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 {
|
|
||||||
plugins.beautylog.error("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,3 +1,4 @@
|
|||||||
/// <reference path="typings/main.d.ts" />
|
import * as smartparam from '@pushrocks/smartparam';
|
||||||
export var beautylog = require("beautylog");
|
import * as smartpromise from '@pushrocks/smartpromise';
|
||||||
export var _ = require("lodash");
|
|
||||||
|
export { smartparam, 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