Compare commits

..

33 Commits

Author SHA1 Message Date
489ebab6ee 2.0.5 2017-04-21 00:04:31 +02:00
46baf07551 now has a env vars feature 2017-04-21 00:04:28 +02:00
cf0aabfbfc 2.0.4 2017-04-19 20:18:19 +02:00
a5005aeb96 2.0.3 2017-04-19 20:06:25 +02:00
a7e9f1303d update ci 2017-04-19 20:06:21 +02:00
92a6508c6a 2.0.2 2017-04-19 20:05:11 +02:00
32f6b5cbf8 update 2017-04-19 20:05:05 +02:00
bdfbcead8d 2.0.1 2017-04-19 20:02:46 +02:00
e73e704886 update dependencies to latest standards 2017-04-19 20:02:43 +02:00
efa818680a 2.0.0 2016-11-21 18:29:08 +01:00
572d85b3d3 prepare new major version 2016-11-21 18:29:02 +01:00
41e1386a8d 1.2.11 2016-11-21 18:28:08 +01:00
98d6f9e483 reverse to ES5 2016-11-21 18:28:06 +01:00
f295776bea 1.2.10 2016-11-21 14:51:39 +01:00
cde63e95a8 update repo links 2016-11-21 14:51:35 +01:00
6e4804a5ad 1.2.9 2016-11-21 14:47:30 +01:00
137592a19b update types 2016-11-21 14:47:24 +01:00
b850bc48cd 1.2.8 2016-11-21 12:11:53 +01:00
e1ce867493 update README 2016-11-21 12:11:49 +01:00
8e94ca9a60 1.2.7 2016-11-21 12:05:00 +01:00
81eaaaca90 update tests 2016-11-21 12:04:57 +01:00
340e7716f0 1.2.6 2016-11-21 11:58:41 +01:00
af7b9c46d2 update to latest standards 2016-11-21 11:58:37 +01:00
56d4432d31 Update README.md 2016-05-19 06:55:05 +02:00
324abf821e 1.2.5 2016-05-02 01:43:11 +02:00
fde407a762 update travis.yml 2016-05-02 01:43:07 +02:00
c9ac84954f update travis.yml 2016-05-02 01:41:57 +02:00
e0b4a93f1c 1.2.4 2016-05-02 01:30:02 +02:00
70015b5ffc now bundles typings 2016-05-02 01:29:42 +02:00
5a4d47411a 1.2.3 2016-04-05 15:53:54 +02:00
1730706034 fix package.json 2016-04-05 15:53:51 +02:00
7ecf342548 prepare for npmts-g 2016-04-05 15:13:52 +02:00
7f10392757 update dependencies and add caret to npmts dependency 2016-04-05 12:34:03 +02:00
41 changed files with 2358 additions and 436 deletions

71
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,71 @@
# gitzone standard
image: hosttoday/ht-docker-node:npmci
cache:
paths:
- .yarn/
key: "$CI_BUILD_STAGE"
stages:
- test
- release
- trigger
- pages
testLEGACY:
stage: test
script:
- npmci test legacy
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
allow_failure: true
testLTS:
stage: test
script:
- npmci test lts
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
testSTABLE:
stage: test
script:
- npmci test stable
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
release:
stage: release
script:
- npmci publish
only:
- tags
tags:
- docker
trigger:
stage: trigger
script:
- npmci trigger
only:
- tags
tags:
- docker
pages:
image: hosttoday/ht-docker-node:npmci
stage: pages
script:
- npmci command yarn global add npmpage
- npmci command npmpage --publish gitlab
tags:
- docker
only:
- tags
artifacts:
expire_in: 1 week
paths:
- public

View File

@ -1,16 +0,0 @@
language: node_js
node_js:
- 4.2.2
before_install:
- npm install -g tsd
deploy:
provider: npm
email: npm@lossless.digital
api_key:
secure: 3bZ0lm2fGelnmSTyoYrBU6Rpz565Vth47jF5JDwOPlhOQLe6uerfUcY4SfEt+3GzsR0OOzP9TdJ/H7owTO7dAcsqVrCqWuWK51Mq38nsL8fhqe1Zgnf+iYv8xk+nt43MIGqEYW+0ixguOZWNUcZMIDkYEf5+lAlwIgjHoK8fzeKZRASNY2Jwk6gNGBskVSxRPvIMyKCX5Gi1hgYR4jxgAXTI9At6FcX2bq/RUeKzZf0MIwGITWnMnFAFLo+yLSTyu4nOIsJUsZ0+hwfxWhuUTznD9RUS5//+EP0gwKnZfRWl9WCNdA0I+bskW3Pn9jRBIoJcbJUITgnvSSfdNfxDaupKR00/2upKJ9ZA8bAI5qnKhUsNQXyzLdHpiN2LKPQW8amgaI5cpqo0hJ1W7NMAlW9fgKzPul7zZe9B1HmsBOBFi7seXsW8oDbB8HJjIyc8me9BHqhW/UPcFOvGoxQC9NaLmmko486Z7QtUkfxXJnGEAmBmB4twMA4Fh1vJCIrXBQkiDh7CFlPIxqQtrTgV7NcR6yMkcOltnLw9wMHZEHNoYHmRerStCa5EfvoFXm2RyBs7Nt4xC75iIksJGF/hqEtq9ow49HIYMvf5sZ6nYuF+z35SwLiWMj+yP77OOvcNBx3wvEbYqXlrQ+fPW6j0gglcZ+QZrfernTIRscika8w=
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=

View File

@ -1,6 +1,6 @@
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
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,18 +1,27 @@
# smartenv
store things about your environment and let them travel across modules
## Status
[![Build Status](https://travis-ci.org/pushrocks/smartenv.svg?branch=release)](https://travis-ci.org/pushrocks/smartenv)
## Availabililty
[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smartenv)
[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/smartenv)
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smartenv)
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smartenv/)
## Status for master
[![build status](https://gitlab.com/pushrocks/smartenv/badges/master/build.svg)](https://gitlab.com/pushrocks/smartenv/commits/master)
[![coverage report](https://gitlab.com/pushrocks/smartenv/badges/master/coverage.svg)](https://gitlab.com/pushrocks/smartenv/commits/master)
[![Dependency Status](https://david-dm.org/pushrocks/smartenv.svg)](https://david-dm.org/pushrocks/smartenv)
[![devDependency Status](https://david-dm.org/pushrocks/smartenv/dev-status.svg)](https://david-dm.org/pushrocks/smartenv#info=devDependencies)
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/smartenv/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/smartenv/master/dependencies/npm)
[![bitHound Overalll Score](https://www.bithound.io/github/pushrocks/smartenv/badges/score.svg)](https://www.bithound.io/github/pushrocks/smartenv)
[![bitHound Code](https://www.bithound.io/github/pushrocks/smartenv/badges/code.svg)](https://www.bithound.io/github/pushrocks/smartenv)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Install
Install the package through npm
```
npm install smartenv
npm install smartenv --save
```
## Usage
@ -25,4 +34,6 @@ 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"
```
```
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)

3
dist/index.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
import { getEnv, printEnv, getEnvVars } from './smartenv.export';
import { obs } from './smartenv.objectstorage';
export { getEnv, getEnvVars, printEnv, obs };

18
dist/index.js vendored
View File

@ -1,11 +1,9 @@
/// <reference path="typings/main.d.ts" />
"use strict";
var environment = require("./smartenv.environment");
var objectstorage = require("./smartenv.objectstorage");
var smartenv = {}; //create smartenv object
smartenv.getEnv = environment.getEnv;
smartenv.printEnv = environment.printEnv;
smartenv.obs = objectstorage.obs;
module.exports = smartenv;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQzs7QUFFMUMsSUFBTyxXQUFXLFdBQVcsd0JBQXdCLENBQUMsQ0FBQztBQUN2RCxJQUFPLGFBQWEsV0FBVywwQkFBMEIsQ0FBQyxDQUFDO0FBRTNELElBQUksUUFBUSxHQUFPLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtBQUMvQyxRQUFRLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7QUFDckMsUUFBUSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO0FBQ3pDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQztBQUVqQyxpQkFBUyxRQUFRLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9tYWluLmQudHNcIiAvPlxuXG5pbXBvcnQgZW52aXJvbm1lbnQgPSByZXF1aXJlKFwiLi9zbWFydGVudi5lbnZpcm9ubWVudFwiKTtcbmltcG9ydCBvYmplY3RzdG9yYWdlID0gcmVxdWlyZShcIi4vc21hcnRlbnYub2JqZWN0c3RvcmFnZVwiKTtcblxudmFyIHNtYXJ0ZW52OmFueSA9IHt9OyAvL2NyZWF0ZSBzbWFydGVudiBvYmplY3RcbnNtYXJ0ZW52LmdldEVudiA9IGVudmlyb25tZW50LmdldEVudjtcbnNtYXJ0ZW52LnByaW50RW52ID0gZW52aXJvbm1lbnQucHJpbnRFbnY7XG5zbWFydGVudi5vYnMgPSBvYmplY3RzdG9yYWdlLm9icztcblxuZXhwb3J0ID0gc21hcnRlbnY7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
Object.defineProperty(exports, "__esModule", { value: true });
const smartenv_export_1 = require("./smartenv.export");
exports.getEnv = smartenv_export_1.getEnv;
exports.printEnv = smartenv_export_1.printEnv;
exports.getEnvVars = smartenv_export_1.getEnvVars;
const smartenv_objectstorage_1 = require("./smartenv.objectstorage");
exports.obs = smartenv_objectstorage_1.obs;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUE4RDtBQUs1RCxpQkFMTSx3QkFBTSxDQUtOO0FBRU4sbUJBUGMsMEJBQVEsQ0FPZDtBQURSLHFCQU53Qiw0QkFBVSxDQU14QjtBQUxaLHFFQUE4QztBQU81QyxjQVBPLDRCQUFHLENBT1AifQ==

11
dist/smartenv.classes.environment.d.ts vendored Normal file
View File

@ -0,0 +1,11 @@
export declare class Environment {
runtimeEnv: string;
isBrowser: boolean;
userAgent: string;
isNode: boolean;
nodeVersion: string;
isCI: boolean;
isTravis: boolean;
isC9: boolean;
constructor();
}

18
dist/smartenv.classes.environment.js vendored Normal file
View File

@ -0,0 +1,18 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const helpers = require("./smartenv.envhelpers");
class Environment {
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();
}
;
}
exports.Environment = Environment;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuY2xhc3Nlcy5lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52LmNsYXNzZXMuZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBaUQ7QUFFakQ7SUFTRTtRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsQ0FBQztJQUFBLENBQUM7Q0FDSDtBQW5CRCxrQ0FtQkMifQ==

View File

@ -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;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmNsYXNzZXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQ0FBMEM7O0FBRS9CLG9CQUFZLEdBQUc7SUFDdEIsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2xCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFUywwQkFBa0IsR0FBRztJQUM1QixFQUFFLENBQUEsQ0FBQyxpQkFBUyxFQUFFLENBQUMsQ0FBQSxDQUFDO1FBQ1osTUFBTSxDQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRVMsY0FBTSxHQUFHO0lBQ2hCLE1BQU0sQ0FBQyxvQkFBWSxFQUFFLEtBQUssTUFBTSxDQUFBO0FBQ3BDLENBQUMsQ0FBQztBQUVTLHNCQUFjLEdBQUc7SUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRVMsaUJBQVMsR0FBRztJQUNuQixNQUFNLENBQUMsQ0FBQyxjQUFNLEVBQUUsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFUyxZQUFJLEdBQUc7SUFDZCxFQUFFLENBQUEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUFBLENBQUM7QUFDTixDQUFDLENBQUM7QUFFUyxZQUFJLEdBQUc7SUFDZCxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBLENBQUM7UUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFUyxnQkFBUSxHQUFHO0lBQ2xCLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUFBLENBQUM7QUFDTixDQUFDLENBQUMiLCJmaWxlIjoic21hcnRlbnYuY2xhc3Nlcy5oZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cblxuZXhwb3J0IHZhciBnZXRFbnZTdHJpbmcgPSBmdW5jdGlvbigpOnN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIFwiYnJvd3NlclwiO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIFwibm9kZVwiO1xuICAgIH1cbn07XG5cbmV4cG9ydCB2YXIgZ2V0VXNlckFnZW50U3RyaW5nID0gZnVuY3Rpb24oKTpzdHJpbmd7XG4gICAgaWYoaXNCcm93c2VyKCkpe1xuICAgICAgICByZXR1cm4gIG5hdmlnYXRvci51c2VyQWdlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59O1xuXG5leHBvcnQgdmFyIGlzTm9kZSA9IGZ1bmN0aW9uKCk6Ym9vbGVhbiB7XG4gICAgcmV0dXJuIGdldEVudlN0cmluZygpID09PSBcIm5vZGVcIlxufTtcblxuZXhwb3J0IHZhciBnZXROb2RlVmVyc2lvbiA9IGZ1bmN0aW9uKCk6c3RyaW5nIHtcbiAgICByZXR1cm4gcHJvY2Vzcy52ZXJzaW9uO1xufTtcblxuZXhwb3J0IHZhciBpc0Jyb3dzZXIgPSBmdW5jdGlvbigpOmJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNOb2RlKCk7XG59O1xuXG5leHBvcnQgdmFyIGlzQ0kgPSBmdW5jdGlvbigpe1xuICAgIGlmKHByb2Nlc3MuZW52LkNJKXtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG59O1xuXG5leHBvcnQgdmFyIGlzQzkgPSBmdW5jdGlvbigpe1xuICAgIGlmIChwcm9jZXNzLmVudi5DOV9IT1NUTkFNRSl7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59O1xuXG5leHBvcnQgdmFyIGlzVHJhdmlzID0gZnVuY3Rpb24oKXtcbiAgICBpZihwcm9jZXNzLmVudi5UUkFWSVMpe1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbn07Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

View File

@ -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;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmNsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDOztBQUUxQyxJQUFPLE9BQU8sV0FBVyw0QkFBNEIsQ0FBQyxDQUFDO0FBQ3ZEO0lBU0k7UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7O0lBQ0wsa0JBQUM7QUFBRCxDQW5CQSxBQW1CQyxJQUFBO0FBbkJZLG1CQUFXLGNBbUJ2QixDQUFBIiwiZmlsZSI6InNtYXJ0ZW52LmNsYXNzZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9tYWluLmQudHNcIiAvPlxuXG5pbXBvcnQgaGVscGVycyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LmNsYXNzZXMuaGVscGVyc1wiKTtcbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudCB7XG4gICAgcnVudGltZUVudjpzdHJpbmc7XG4gICAgaXNCcm93c2VyOmJvb2xlYW47XG4gICAgdXNlckFnZW50OnN0cmluZztcbiAgICBpc05vZGU6Ym9vbGVhbjtcbiAgICBub2RlVmVyc2lvbjpzdHJpbmc7XG4gICAgaXNDSTpib29sZWFuO1xuICAgIGlzVHJhdmlzOmJvb2xlYW47XG4gICAgaXNDOTpib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJ1bnRpbWVFbnYgPSBoZWxwZXJzLmdldEVudlN0cmluZygpO1xuICAgICAgICB0aGlzLmlzQnJvd3NlciA9IGhlbHBlcnMuaXNCcm93c2VyKCk7XG4gICAgICAgIHRoaXMudXNlckFnZW50ID0gaGVscGVycy5nZXRVc2VyQWdlbnRTdHJpbmcoKTtcbiAgICAgICAgdGhpcy5pc05vZGUgPSBoZWxwZXJzLmlzTm9kZSgpO1xuICAgICAgICB0aGlzLm5vZGVWZXJzaW9uID0gaGVscGVycy5nZXROb2RlVmVyc2lvbigpO1xuICAgICAgICB0aGlzLmlzQ0kgPSBoZWxwZXJzLmlzQ0koKTtcbiAgICAgICAgdGhpcy5pc1RyYXZpcyA9IGhlbHBlcnMuaXNUcmF2aXMoKTtcbiAgICAgICAgdGhpcy5pc0M5ID0gaGVscGVycy5pc0M5KCk7XG4gICAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

8
dist/smartenv.envhelpers.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
export declare let getEnvString: () => string;
export declare let getUserAgentString: () => string;
export declare let isNode: () => boolean;
export declare let getNodeVersion: () => string;
export declare let isBrowser: () => boolean;
export declare let isCI: () => boolean;
export declare let isC9: () => boolean;
export declare let isTravis: () => boolean;

54
dist/smartenv.envhelpers.js vendored Normal file
View File

@ -0,0 +1,54 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
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;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuZW52aGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52LmVudmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDVyxRQUFBLFlBQVksR0FBRztJQUN4QixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7SUFDZixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRVUsUUFBQSxrQkFBa0IsR0FBRztJQUM5QixFQUFFLENBQUMsQ0FBQyxpQkFBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFBO0lBQzVCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sQ0FBQyxTQUFTLENBQUE7SUFDbEIsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVVLFFBQUEsTUFBTSxHQUFHO0lBQ2xCLE1BQU0sQ0FBQyxvQkFBWSxFQUFFLEtBQUssTUFBTSxDQUFBO0FBQ2xDLENBQUMsQ0FBQTtBQUVVLFFBQUEsY0FBYyxHQUFHO0lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFBO0FBQ3hCLENBQUMsQ0FBQTtBQUVVLFFBQUEsU0FBUyxHQUFHO0lBQ3JCLE1BQU0sQ0FBQyxDQUFDLGNBQU0sRUFBRSxDQUFBO0FBQ2xCLENBQUMsQ0FBQTtBQUVVLFFBQUEsSUFBSSxHQUFHO0lBQ2hCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFBQSxDQUFDO0FBQ0osQ0FBQyxDQUFBO0FBRVUsUUFBQSxJQUFJLEdBQUc7SUFDaEIsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVVLFFBQUEsUUFBUSxHQUFHO0lBQ3BCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFBQSxDQUFDO0FBQ0osQ0FBQyxDQUFBIn0=

View File

@ -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;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LmVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLQSxJQUFPLE9BQU8sV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBQy9DLElBQU8sYUFBYSxXQUFXLDBCQUEwQixDQUFDLENBQUM7QUFHM0QsSUFBSSxXQUErQixDQUFDO0FBQ3BDLElBQUksYUFBYSxHQUFXLEtBQUssQ0FBQztBQUVsQzs7O0dBR0c7QUFDUSxjQUFNLEdBQUc7SUFDaEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsbUNBQW1DO0lBQzdELENBQUM7SUFBQSxDQUFDO0lBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNTLGdCQUFRLEdBQUc7SUFDbkIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9CLElBQUksZUFBZSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0lBQ3pGLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGVudi5lbnZpcm9ubWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL21haW4uZC50c1wiIC8+XG4vKipcbiAqIERlYWxzIHdpdGggdGhlIGVudmlyb25tZW50IHRoZSBjdXJyZW50IEpTIHNjcmlwdCBpcyBydW5uaW5nIGluLlxuICovXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LnBsdWdpbnNcIik7XG5pbXBvcnQgY2xhc3NlcyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52LmNsYXNzZXNcIik7XG5pbXBvcnQgb2JqZWN0U3RvcmFnZSA9IHJlcXVpcmUoXCIuL3NtYXJ0ZW52Lm9iamVjdHN0b3JhZ2VcIik7XG5cblxudmFyIGVudmlyb25tZW50OmNsYXNzZXMuRW52aXJvbm1lbnQ7XG52YXIgZW52RGV0ZXJtaW5lZDpib29sZWFuID0gZmFsc2U7XG5cbi8qKlxuICogcmV0dXJucyB0aGUgZW52aXJvbm1lbnRcbiAqIEByZXR1cm5zIHtFbnZpcm9ubWVudH1cbiAqL1xuZXhwb3J0IHZhciBnZXRFbnYgPSBmdW5jdGlvbigpe1xuICAgIGlmICghZW52RGV0ZXJtaW5lZCkge1xuICAgICAgICBlbnZpcm9ubWVudCA9IG5ldyBjbGFzc2VzLkVudmlyb25tZW50KCk7XG4gICAgICAgIGVudkRldGVybWluZWQgPSB0cnVlOyAvLyBlbnN1cmUgY29kZSBhYm92ZSBvbmx5IHJ1bnMgb25jZVxuICAgIH07XG4gICAgcmV0dXJuIGVudmlyb25tZW50O1xufTtcblxuLyoqXG4gKiBwcmludHMgdGhlIGVudmlyb25tZW50IHRvIGNvbnNvbGVcbiAqL1xuZXhwb3J0IHZhciAgcHJpbnRFbnYgPSBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5nZXRFbnYoKS5pc05vZGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJydW5uaW5nIG9uIE5PREVcIik7XG4gICAgICAgIHZhciBzbWFydGVudlZlcnNpb24gPSByZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpLnZlcnNpb247XG4gICAgICAgIGNvbnNvbGUubG9nKFwibm9kZSB2ZXJzaW9uIGlzIFwiICsgdGhpcy5nZXRFbnYoKS5ub2RlVmVyc2lvbiArIFwiIGFuZCBzbWFydGVudiB2ZXJzaW9uIGlzIFwiICsgc21hcnRlbnZWZXJzaW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhcInJ1bm5pbmcgb24gQlJPV1NFUlwiKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJicm93c2VyIGlzIFwiICsgdGhpcy5nZXRFbnYoKS51c2VyQWdlbnQpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcInRoZSBzbWFydGVudiByZWdpc3RyYXRpb24gc3RvcmUgY3VycmVudGx5IGhvbGRzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcIik7XG4gICAgY29uc29sZS5sb2coT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0U3RvcmFnZS5vYnMuZ2V0QWxsKCkpKTtcbn07Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

15
dist/smartenv.export.d.ts vendored Normal file
View File

@ -0,0 +1,15 @@
import * as classes from './smartenv.classes.environment';
/**
* returns the environment
* @returns {Environment}
*/
export declare let getEnv: () => classes.Environment;
/**
* prints the environment to console
*/
export declare let printEnv: () => void;
export interface IEnvObject {
name: string;
value: string;
}
export declare let getEnvVars: (regexArg: RegExp) => Promise<IEnvObject[]>;

53
dist/smartenv.export.js vendored Normal file
View File

@ -0,0 +1,53 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const classes = require("./smartenv.classes.environment");
const objectStorage = require("./smartenv.objectstorage");
let environment = null;
/**
* returns the environment
* @returns {Environment}
*/
exports.getEnv = function () {
if (!environment) {
environment = new classes.Environment();
}
;
return environment;
};
/**
* prints the environment to console
*/
exports.printEnv = function () {
if (this.getEnv().isNode) {
console.log('running on NODE');
let 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()));
};
exports.getEnvVars = (regexArg) => __awaiter(this, void 0, void 0, function* () {
let resultArray = [];
for (let key in process.env) {
if (regexArg.test(key)) {
resultArray.push({
name: key,
value: process.env[key]
});
}
}
return resultArray;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYuZXhwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRlbnYuZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFJQSwwREFBeUQ7QUFDekQsMERBQXlEO0FBR3pELElBQUksV0FBVyxHQUF3QixJQUFJLENBQUE7QUFFM0M7OztHQUdHO0FBQ1EsUUFBQSxNQUFNLEdBQUc7SUFDbEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUN6QyxDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxXQUFXLENBQUE7QUFDcEIsQ0FBQyxDQUFBO0FBSUQ7O0dBRUc7QUFDUSxRQUFBLFFBQVEsR0FBRztJQUNwQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDOUIsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFBO1FBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsR0FBRywyQkFBMkIsR0FBRyxlQUFlLENBQUMsQ0FBQTtJQUM3RyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJFQUEyRSxDQUFDLENBQUE7SUFDeEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDckUsQ0FBQyxDQUFBO0FBT1UsUUFBQSxVQUFVLEdBQUcsQ0FBTyxRQUFnQjtJQUM3QyxJQUFJLFdBQVcsR0FBaUIsRUFBRSxDQUFBO0lBQ2xDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO2FBQ3hCLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQTtBQUNwQixDQUFDLENBQUEsQ0FBQSJ9

5
dist/smartenv.objectstorage.d.ts vendored Normal file
View File

@ -0,0 +1,5 @@
export declare let obsItems: any;
/**
* Objectstorage allows easy sharing of objects within node
*/
export declare let obs: any;

View File

@ -1,34 +1,36 @@
"use strict";
/// <reference path="typings/main.d.ts" />
var plugins = require("./smartenv.plugins");
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./smartenv.plugins");
exports.obsItems = {};
/**
* Objectstorage allows easy sharing of objects within node
*/
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");
add: (keyNameArg, objectArg) => {
if (!keyNameArg) {
console.log('keyName is undefined');
return;
}
if (objectArg == "undefined") {
console.log("objectArg is undefined");
if (!objectArg) {
console.log('objectArg is undefined');
}
if (typeof exports.obsItems[paramNameArg] === "undefined") {
exports.obsItems[paramNameArg] = objectArg;
if (!(exports.obsItems[keyNameArg])) {
exports.obsItems[keyNameArg] = objectArg;
}
else {
console.log("object is already present, so add operation has failed.");
console.log('object is already present, so add operation has failed.');
}
return exports.obsItems[paramNameArg];
return exports.obsItems[keyNameArg];
},
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);
if (!(typeof exports.obsItems[paramNameArg] === 'undefined')) {
exports.obsItems[paramNameArg] = plugins.lodash.assign(exports.obsItems[paramNameArg], objectArg);
}
else {
console.log("object is not present, so there is nothing to merge");
console.log('object is not present, so there is nothing to merge');
}
},
get: function (keyName) {
@ -38,10 +40,8 @@ exports.obs = {
return exports.obsItems;
},
addComplete: function (itemsArg) {
exports.obsItems = plugins._.assign(exports.obsItems, itemsArg);
exports.obsItems = plugins.lodash.assign(exports.obsItems, itemsArg);
return exports.obsItems;
}
};
exports.obsItems = {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBDQUEwQztBQUMxQyxJQUFPLE9BQU8sV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3BDLFdBQUcsR0FBTztJQUNqQixHQUFHLEVBQUUsVUFBUyxZQUEwQixFQUFDLFNBQXVCO1FBQWxELDRCQUEwQixHQUExQiwwQkFBMEI7UUFBQyx5QkFBdUIsR0FBdkIsdUJBQXVCO1FBQzVELEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxFQUFFLENBQUMsQ0FBQyxPQUFPLGdCQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUEsQ0FBQztZQUMvQyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN2QyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELE1BQU0sQ0FBQyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLEVBQUUsVUFBUyxZQUFZLEVBQUMsU0FBUztRQUNwQyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsS0FBSyxFQUFFLFVBQVMsWUFBWSxFQUFDLFNBQVM7UUFDbEMsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDLE9BQU8sZ0JBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDakQsZ0JBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBUSxDQUFDLFlBQVksQ0FBQyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0wsQ0FBQztJQUNELEdBQUcsRUFBRSxVQUFTLE9BQU87UUFDakIsTUFBTSxDQUFDLGdCQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE1BQU0sRUFBRTtRQUNKLE1BQU0sQ0FBQyxnQkFBUSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxXQUFXLEVBQUUsVUFBUyxRQUFRO1FBQzFCLGdCQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxNQUFNLENBQUMsZ0JBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0osQ0FBQztBQUNTLGdCQUFRLEdBQU8sRUFBRSxDQUFDIiwiZmlsZSI6InNtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9tYWluLmQudHNcIiAvPlxuaW1wb3J0IHBsdWdpbnMgPSByZXF1aXJlKFwiLi9zbWFydGVudi5wbHVnaW5zXCIpO1xuZXhwb3J0IHZhciBvYnM6YW55ID0ge1xuICAgIGFkZDogZnVuY3Rpb24ocGFyYW1OYW1lQXJnID0gXCJ1bmRlZmluZWRcIixvYmplY3RBcmcgPSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGlmIChwYXJhbU5hbWVBcmcgPT0gXCJ1bmRlZmluZWRcIil7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInBhcmFtTmFtZSBpcyB1bmRlZmluZWRcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iamVjdEFyZyA9PSBcInVuZGVmaW5lZFwiKXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwib2JqZWN0QXJnIGlzIHVuZGVmaW5lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9ic0l0ZW1zW3BhcmFtTmFtZUFyZ10gPT09IFwidW5kZWZpbmVkXCIpe1xuICAgICAgICAgICAgb2JzSXRlbXNbcGFyYW1OYW1lQXJnXSA9IG9iamVjdEFyZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwib2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCwgc28gYWRkIG9wZXJhdGlvbiBoYXMgZmFpbGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JzSXRlbXNbcGFyYW1OYW1lQXJnXTtcbiAgICB9LFxuICAgIHJlcGxhY2U6IGZ1bmN0aW9uKHBhcmFtTmFtZUFyZyxvYmplY3RBcmcpe1xuICAgICAgICBvYnNJdGVtc1twYXJhbU5hbWVBcmddID0gb2JqZWN0QXJnO1xuICAgIH0sXG4gICAgbWVyZ2U6IGZ1bmN0aW9uKHBhcmFtTmFtZUFyZyxvYmplY3RBcmcpe1xuICAgICAgICBpZighKHR5cGVvZiBvYnNJdGVtc1twYXJhbU5hbWVBcmddID09PSBcInVuZGVmaW5lZFwiKSl7XG4gICAgICAgICAgICBvYnNJdGVtc1twYXJhbU5hbWVBcmddID0gcGx1Z2lucy5fLmFzc2lnbihvYnNJdGVtc1twYXJhbU5hbWVBcmddLG9iamVjdEFyZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIm9iamVjdCBpcyBub3QgcHJlc2VudCwgc28gdGhlcmUgaXMgbm90aGluZyB0byBtZXJnZVwiKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0OiBmdW5jdGlvbihrZXlOYW1lKSB7XG4gICAgICAgIHJldHVybiBvYnNJdGVtc1trZXlOYW1lXTtcbiAgICB9LFxuICAgIGdldEFsbDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb2JzSXRlbXM7XG4gICAgfSxcbiAgICBhZGRDb21wbGV0ZTogZnVuY3Rpb24oaXRlbXNBcmcpIHtcbiAgICAgICAgb2JzSXRlbXMgPSBwbHVnaW5zLl8uYXNzaWduKG9ic0l0ZW1zLGl0ZW1zQXJnKTtcbiAgICAgICAgcmV0dXJuIG9ic0l0ZW1zO1xuICAgIH1cbn07XG5leHBvcnQgdmFyIG9ic0l0ZW1zOmFueSA9IHt9OyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYub2JqZWN0c3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52Lm9iamVjdHN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBOEM7QUFFbkMsUUFBQSxRQUFRLEdBQVEsRUFBRSxDQUFBO0FBRTdCOztHQUVHO0FBQ1EsUUFBQSxHQUFHLEdBQVE7SUFDcEIsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVM7UUFDekIsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUNuQyxNQUFNLENBQUE7UUFDUixDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQVEsQ0FBRSxVQUFVLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixnQkFBUSxDQUFFLFVBQVUsQ0FBRSxHQUFHLFNBQVMsQ0FBQTtRQUNwQyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLHlEQUF5RCxDQUFDLENBQUE7UUFDeEUsQ0FBQztRQUNELE1BQU0sQ0FBQyxnQkFBUSxDQUFFLFVBQVUsQ0FBRSxDQUFBO0lBQy9CLENBQUM7SUFDRCxPQUFPLEVBQUUsVUFBVSxZQUFZLEVBQUUsU0FBUztRQUN4QyxnQkFBUSxDQUFFLFlBQVksQ0FBRSxHQUFHLFNBQVMsQ0FBQTtJQUN0QyxDQUFDO0lBQ0QsS0FBSyxFQUFFLFVBQVUsWUFBWSxFQUFFLFNBQVM7UUFDdEMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sZ0JBQVEsQ0FBRSxZQUFZLENBQUUsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsZ0JBQVEsQ0FBRSxZQUFZLENBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBUSxDQUFFLFlBQVksQ0FBRSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBQ3ZGLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMscURBQXFELENBQUMsQ0FBQTtRQUNwRSxDQUFDO0lBQ0gsQ0FBQztJQUNELEdBQUcsRUFBRSxVQUFVLE9BQU87UUFDcEIsTUFBTSxDQUFDLGdCQUFRLENBQUUsT0FBTyxDQUFFLENBQUE7SUFDNUIsQ0FBQztJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sQ0FBQyxnQkFBUSxDQUFBO0lBQ2pCLENBQUM7SUFDRCxXQUFXLEVBQUUsVUFBVSxRQUFRO1FBQzdCLGdCQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUNwRCxNQUFNLENBQUMsZ0JBQVEsQ0FBQTtJQUNqQixDQUFDO0NBQ0YsQ0FBQSJ9

4
dist/smartenv.plugins.d.ts vendored Normal file
View File

@ -0,0 +1,4 @@
import 'typings-global';
import * as smartq from 'smartq';
import * as lodash from 'lodash';
export { smartq, lodash };

View File

@ -1,9 +1,8 @@
"use strict";
/// <reference path="typings/main.d.ts" />
var plugins = {
Q: require("q"),
_: require("lodash")
};
module.exports = plugins;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZW52LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBDQUEwQztBQUMxQyxJQUFJLE9BQU8sR0FBRztJQUNWLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ2YsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLGlCQUFTLE9BQU8sQ0FBQyIsImZpbGUiOiJzbWFydGVudi5wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbnZhciBwbHVnaW5zID0ge1xuICAgIFE6IHJlcXVpcmUoXCJxXCIpLFxuICAgIF86IHJlcXVpcmUoXCJsb2Rhc2hcIilcbn07XG5cbmV4cG9ydCA9IHBsdWdpbnM7Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
Object.defineProperty(exports, "__esModule", { value: true });
require("typings-global");
const smartq = require("smartq");
exports.smartq = smartq;
const lodash = require("lodash");
exports.lodash = lodash;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlbnYucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZW52LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFDdkIsaUNBQWdDO0FBSTVCLHdCQUFNO0FBSFYsaUNBQWdDO0FBSTVCLHdCQUFNIn0=

7
npmextra.json Normal file
View File

@ -0,0 +1,7 @@
{
"npmci": {
"globalNpmTools": [
"npmts"
]
}
}

View File

@ -1,4 +1,4 @@
{
"mode":"default",
"coveralls":true
"coverageTreshold":75
}

View File

@ -1,34 +1,33 @@
{
"name": "smartenv",
"version": "1.2.2",
"version": "2.0.5",
"description": "store things about your environment and let them travel across modules",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"scripts": {
"test": "(npmts)",
"testbrowser": "(npm test) && (node testbrowser.js)"
},
"repository": {
"type": "git",
"url": "https://github.com/pushrocks/smartenv.git"
"url": "https://gitlab.com/pushrocks/smartenv.git"
},
"keywords": [
"environment"
],
"author": "Smart Coordination GmbH <office@push.rocks> (https://push.rocks)",
"author": "Lossless GmbH <hello@lossless.support> (https://lossless.com)",
"license": "MIT",
"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": {
"lodash": "^4.8.1",
"q": "^1.4.1"
"lodash": "^4.17.4",
"smartq": "^1.1.1",
"typings-global": "^1.0.14"
},
"devDependencies": {
"beautylog": "4.1.2",
"easyserve": "0.0.5",
"gulp": "^3.9.1",
"gulp-browser": "2.0.0",
"npmts": "5.0.3"
"beautylog": "^6.1.5",
"tapbundle": "^1.0.5"
}
}

View File

@ -1,6 +0,0 @@
<head>
<script async src="browserified/index.js"></script>
</head>
<body>
</body>

View File

@ -1,2 +0,0 @@
var smartenv = require("./index.js");
smartenv.printEnv();

4
test/test.d.ts vendored
View File

@ -1,4 +0,0 @@
/// <reference path="../ts/typings/main.d.ts" />
declare var smartenv: any;
declare var beautylog: any;
declare var key2: string;

View File

@ -1,23 +0,0 @@
/// <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=

View File

@ -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"}

View File

@ -1,26 +1,38 @@
/// <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");
import * as smartenv from '../dist/index.js'
import * as beautylog from 'beautylog'
//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
import { tap, expect } from 'tapbundle'
//test smartenv.obs.replace
smartenv.obs.replace("myTestObject",{key1:"Klaus"});
beautylog.log(smartenv.obs.get("myTestObject").key1); // this should be Klaus
tap.test('should print env', async () => {
smartenv.printEnv()
}).catch(tap.threw)
//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
// test smartenv.obs.add
tap.test('obs add something', async () => {
smartenv.obs.add('myTestObject', { key1: 'Peter' })
smartenv.obs.add('myTestObject', { key1: 'Klaus' }) // now trying to add a second
return expect(smartenv.obs.get('myTestObject').key1).to.equal('Peter')
})
var key2 = "hello";
smartenv.obs.get("myTestObject").key2 = key2;
beautylog.log(smartenv.obs.get("myTestObject").key2);
// test smartenv.obs.replace
tap.test('', async () => {
smartenv.obs.replace('myTestObject', { key1: 'Klaus' })
expect(smartenv.obs.get('myTestObject').key1).to.equal('Klaus')
})
beautylog.success("Success!");
tap.test('should merge things', async () => {
smartenv.obs.merge('myTestObject', { key2: 'Peter' })
expect(smartenv.obs.get('myTestObject').key1).to.equal('Klaus')
return expect(smartenv.obs.get('myTestObject').key2).to.equal('Peter')
})
tap.test('set via get', async () => {
smartenv.obs.get('myTestObject').key2 = 'hello'
return expect(smartenv.obs.get('myTestObject').key2).to.equal('hello')
})
tap.test('should get regex env array', async () => {
process.env.CUSTOM = 'some'
let resultArray = await smartenv.getEnvVars(/CUSTOM/)
return expect(resultArray).to.be.length(1)
})

View File

@ -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']);

View File

@ -1,11 +1,10 @@
/// <reference path="typings/main.d.ts" />
import {getEnv, printEnv, getEnvVars} from './smartenv.export'
import { obs } from './smartenv.objectstorage'
import environment = require("./smartenv.environment");
import objectstorage = require("./smartenv.objectstorage");
var smartenv:any = {}; //create smartenv object
smartenv.getEnv = environment.getEnv;
smartenv.printEnv = environment.printEnv;
smartenv.obs = objectstorage.obs;
export = smartenv;
export {
getEnv,
getEnvVars,
printEnv,
obs
}

View File

@ -0,0 +1,22 @@
import helpers = require('./smartenv.envhelpers')
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()
};
}

View File

@ -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;
};
};

View File

@ -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();
};
}

52
ts/smartenv.envhelpers.ts Normal file
View File

@ -0,0 +1,52 @@
import * as plugins from './smartenv.plugins'
export let getEnvString = function (): string {
if (typeof window !== 'undefined') {
return 'browser'
} else if (typeof process !== 'undefined') {
return 'node'
}
}
export let getUserAgentString = function (): string {
if (isBrowser()) {
return navigator.userAgent
} else {
return undefined
}
}
export let isNode = function (): boolean {
return getEnvString() === 'node'
}
export let getNodeVersion = function (): string {
return process.version
}
export let isBrowser = function (): boolean {
return !isNode()
}
export let isCI = function () {
if (process.env.CI) {
return true
} else {
return false
};
}
export let isC9 = function () {
if (process.env.C9_HOSTNAME) {
return true
} else {
return false
}
}
export let isTravis = function () {
if (process.env.TRAVIS) {
return true
} else {
return false
};
}

View File

@ -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()));
};

56
ts/smartenv.export.ts Normal file
View File

@ -0,0 +1,56 @@
/**
* Deals with the environment the current JS script is running in.
*/
import * as plugins from './smartenv.plugins'
import * as classes from './smartenv.classes.environment'
import * as objectStorage from './smartenv.objectstorage'
let environment: classes.Environment = null
/**
* returns the environment
* @returns {Environment}
*/
export let getEnv = function () {
if (!environment) {
environment = new classes.Environment()
};
return environment
}
/**
* prints the environment to console
*/
export let printEnv = function () {
if (this.getEnv().isNode) {
console.log('running on NODE')
let 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()))
}
export interface IEnvObject {
name: string
value: string
}
export let getEnvVars = async (regexArg: RegExp) => {
let resultArray: IEnvObject[] = []
for (let key in process.env) {
if (regexArg.test(key)) {
resultArray.push({
name: key,
value: process.env[key]
})
}
}
return resultArray
}

View File

@ -1,40 +1,44 @@
/// <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;
import plugins = require('./smartenv.plugins')
export let obsItems: any = {}
/**
* Objectstorage allows easy sharing of objects within node
*/
export let obs: any = {
add: (keyNameArg, objectArg) => {
if (!keyNameArg) {
console.log('keyName is undefined')
return
}
};
export var obsItems:any = {};
if (!objectArg) {
console.log('objectArg is undefined')
}
if (!(obsItems[ keyNameArg ])) {
obsItems[ keyNameArg ] = objectArg
} else {
console.log('object is already present, so add operation has failed.')
}
return obsItems[ keyNameArg ]
},
replace: function (paramNameArg, objectArg) {
obsItems[ paramNameArg ] = objectArg
},
merge: function (paramNameArg, objectArg) {
if (!(typeof obsItems[ paramNameArg ] === 'undefined')) {
obsItems[ paramNameArg ] = plugins.lodash.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.lodash.assign(obsItems, itemsArg)
return obsItems
}
}

View File

@ -1,7 +1,8 @@
/// <reference path="typings/main.d.ts" />
var plugins = {
Q: require("q"),
_: require("lodash")
};
import 'typings-global'
import * as smartq from 'smartq'
import * as lodash from 'lodash'
export = plugins;
export {
smartq,
lodash
}

View File

@ -1,5 +0,0 @@
{
"ambientDependencies": {
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts"
}
}

3
tslint.json Normal file
View File

@ -0,0 +1,3 @@
{
"extends": "tslint-config-standard"
}

1820
yarn.lock Normal file

File diff suppressed because it is too large Load Diff