diff --git a/dist/lik.objectmap.js b/dist/lik.objectmap.js
index 275be40..c1d6675 100644
--- a/dist/lik.objectmap.js
+++ b/dist/lik.objectmap.js
@@ -10,6 +10,7 @@ class Objectmap {
*/
constructor() {
this.objectArray = [];
+ // nothing here
}
/**
* add object to Objectmap
@@ -102,4 +103,4 @@ class Objectmap {
}
}
exports.Objectmap = Objectmap;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLm9iamVjdG1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2xpay5vYmplY3RtYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBd0M7QUFVeEM7O0dBRUc7QUFDSDtJQUdJOztPQUVHO0lBQ0g7UUFMUSxnQkFBVyxHQUFRLEVBQUUsQ0FBQTtJQU83QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsU0FBWTtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxjQUFtQjtRQUN4QixHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEIsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxTQUFZO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQUMsWUFBdUM7UUFDeEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDdkQsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLElBQUksQ0FBQTtRQUNmLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxZQUFZO1FBQ3pCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDMUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDN0IsQ0FBQztRQUNELE1BQU0sQ0FBQyxZQUFZLENBQUE7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFdBQXlDO1FBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNILEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQTtRQUNmLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sQ0FBQyxLQUFLLENBQUE7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxTQUFZO1FBQ2YsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUE7UUFDekIsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDaEMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUMvQixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUE7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSTtRQUNBLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBQ3pCLENBQUM7Q0FDSjtBQTNHRCw4QkEyR0MifQ==
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLm9iamVjdG1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2xpay5vYmplY3RtYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBd0M7QUFVeEM7O0dBRUc7QUFDSDtJQUdFOztPQUVHO0lBQ0g7UUFMUSxnQkFBVyxHQUFRLEVBQUUsQ0FBQTtRQU0zQixlQUFlO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBRSxTQUFZO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFFLGNBQW1CO1FBQzNCLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFFLFNBQVk7UUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksQ0FBRSxZQUF1QztRQUMzQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUN2RCxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDLFdBQVcsQ0FBRSxDQUFDLENBQUUsQ0FBQTtRQUN6QixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFFLFlBQVk7UUFDNUIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUMxQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDM0IsQ0FBQztRQUNELE1BQU0sQ0FBQyxZQUFZLENBQUE7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFFLFdBQXlDO1FBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQTtRQUNiLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFFLFNBQVk7UUFDbEIsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUE7UUFDekIsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDbEMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM3QixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUE7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSTtRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7Q0FDRjtBQTNHRCw4QkEyR0MifQ==
\ No newline at end of file
diff --git a/dist/lik.observablemap.d.ts b/dist/lik.observablemap.d.ts
index b628701..a7a9bc8 100644
--- a/dist/lik.observablemap.d.ts
+++ b/dist/lik.observablemap.d.ts
@@ -1,3 +1,4 @@
+///
import * as plugins from './lik.plugins';
import { Objectmap } from './lik.objectmap';
import { Observable } from 'rxjs/Rx';
diff --git a/package.json b/package.json
index d4d8f02..06d2404 100644
--- a/package.json
+++ b/package.json
@@ -17,11 +17,7 @@
"url": "https://gitlab.com/pushrocks/lik/issues"
},
"homepage": "https://gitlab.com/pushrocks/lik#README",
- "devDependencies": {
- "@types/should": "^8.1.30",
- "should": "^11.2.1",
- "typings-test": "^1.0.3"
- },
+ "devDependencies": {},
"dependencies": {
"@types/lodash": "^4.14.62",
"@types/minimatch": "2.x.x",
@@ -30,6 +26,8 @@
"minimatch": "^3.0.3",
"q": "^1.5.0",
"rxjs": "^5.3.0",
+ "smartq": "^1.1.1",
+ "tapbundle": "^1.0.14",
"typings-global": "^1.0.14"
}
}
diff --git a/test/test.js b/test/test.js
deleted file mode 100644
index 597ea09..0000000
--- a/test/test.js
+++ /dev/null
@@ -1,127 +0,0 @@
-"use strict";
-require("typings-test");
-const events = require("events");
-const should = require("should");
-const lik = require("../dist/index");
-describe('lik', function () {
- describe('Stringmap', function () {
- let testStringmap;
- let testString1 = 'testString1';
- let testString2 = 'testString2';
- let testString3 = 'testString3';
- let testString4 = 'testString4';
- let testString5 = 'testString5';
- let testString6 = 'testString6';
- it('new lik.Objectmap() -> should create an instance of Stringmap', function () {
- testStringmap = new lik.Stringmap();
- should(testStringmap).be.instanceof(lik.Stringmap);
- });
- it('lik.Stringmap.checkString -> should return false for an string not in Stringmap', function () {
- should(testStringmap.checkString(testString1)).be.false();
- });
- it('lik.Stringmap.addString -> should add an string to Stringmap', function () {
- testStringmap.addString(testString1);
- testStringmap.addString(testString2);
- testStringmap.addString(testString3);
- should(testStringmap.checkString(testString1)).be.true();
- should(testStringmap.checkString(testString2)).be.true();
- should(testStringmap.checkString(testString3)).be.true();
- should(testStringmap.checkMinimatch('*String1')).be.true();
- should(testStringmap.checkMinimatch('*String2')).be.true();
- should(testStringmap.checkMinimatch('*String4')).be.false();
- });
- it('lik.Stringmap.addStringArray -> should add an array of strings', function () {
- testStringmap.addStringArray([testString4, testString5, testString6]);
- should(testStringmap.checkMinimatch('*String4')).be.true();
- });
- it('lik.Stringmap.removeString -> should remove a string from Stringmap', function () {
- testStringmap.removeString(testString2);
- should(testStringmap.checkString(testString2)).be.false();
- });
- it('lik.Stringmap.getStringArray() -> should return a copy of stringArray', function () {
- let clonedArray = testStringmap.getStringArray();
- should(clonedArray[0] === 'testString1').be.true();
- should(clonedArray[0] === testString1).be.true();
- });
- it('lik.Stringmap.checkIsEmpty() -> should register a function to trigger when empty', function () {
- testStringmap.registerUntilTrue(() => { return testStringmap.checkIsEmpty(); }, () => { console.log('Stringmap now is empty'); });
- });
- it('lik.Stringmap.empty() -> should remove wipe and then notify', function () {
- testStringmap.wipe();
- });
- });
- describe('Objectmap', function () {
- let testObjectmap;
- let testObject1 = {
- propOne: 'hello',
- propTwo: 'hello2'
- };
- let testObject2 = {
- propOne: 'hello',
- propTwo: 'hello2'
- };
- it('new lik.Objectmap() -> should correctly instantiate an Objectmap', function () {
- testObjectmap = new lik.Objectmap();
- should(testObjectmap).be.instanceof(lik.Objectmap);
- });
- it('lik.Objectmap.add() -> should correctly add an object to Objectmap', function () {
- testObjectmap.add(testObject1);
- should(testObjectmap.checkForObject(testObject1)).be.true;
- should(testObjectmap.checkForObject(testObject2)).be.false;
- });
- it('lik.Objectmap.remove() -> should correctly remove an object to Objectmap', function () {
- testObjectmap.add(testObject2);
- testObjectmap.remove(testObject1);
- should(testObjectmap.checkForObject(testObject1)).be.false;
- should(testObjectmap.checkForObject(testObject2)).be.true;
- });
- it('Objectmap.forEach -> should correctly run a function forEach map object', function () {
- testObjectmap.forEach(itemArg => {
- should(itemArg).have.ownProperty('propOne');
- });
- });
- it('lik.Objectmap.find() -> should correctly find an object', function () {
- let myObject = { propOne: 'helloThere', propTwo: 'helloAnyway' };
- testObjectmap.add(myObject);
- let referenceObject = testObjectmap.find((itemArg) => { return (itemArg.propOne === 'helloThere'); });
- should(myObject === referenceObject).be.true();
- });
- it('lik.Objectmap.getArray() -> should return a cloned array', function () {
- let myObject = { propOne: 'test1', propTwo: 'wow, how awesome' };
- testObjectmap.add(myObject);
- let clonedArray = testObjectmap.getArray();
- should(clonedArray[clonedArray.length - 1]).eql(myObject);
- });
- it('should get one object and then remove it', function () {
- let originalLength = testObjectmap.getArray().length;
- let oneObject = testObjectmap.getOneAndRemove();
- should(oneObject).not.be.null();
- should(testObjectmap.getArray().length).equal(originalLength - 1);
- should(testObjectmap.getArray()).not.containEql(oneObject);
- });
- });
- describe('Observablemap', function () {
- let testObservablemap;
- let testObservable1;
- let testObservable2;
- let testObservable3;
- let testEmitter;
- it('should create an instance', function () {
- testObservablemap = new lik.Observablemap();
- should(testObservablemap).be.instanceof(lik.Observablemap);
- });
- it('should accept a new emitter', function (done) {
- testEmitter = new events.EventEmitter();
- testObservable1 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event1');
- testObservable1.subscribe(x => {
- done();
- });
- testObservable2 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event1');
- testObservable3 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event2');
- should(testObservable1 === testObservable2).be.true();
- should(testObservable1 === testObservable3).be.false();
- testEmitter.emit('event1');
- });
- });
-});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFFaEMsaUNBQWdDO0FBRWhDLHFDQUFxQztBQUNyQyxRQUFRLENBQUMsS0FBSyxFQUFDO0lBQ1gsUUFBUSxDQUFDLFdBQVcsRUFBQztRQUNqQixJQUFJLGFBQTRCLENBQUE7UUFDaEMsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFBO1FBQy9CLElBQUksV0FBVyxHQUFHLGFBQWEsQ0FBQTtRQUMvQixJQUFJLFdBQVcsR0FBRyxhQUFhLENBQUE7UUFDL0IsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFBO1FBQy9CLElBQUksV0FBVyxHQUFHLGFBQWEsQ0FBQTtRQUMvQixJQUFJLFdBQVcsR0FBRyxhQUFhLENBQUE7UUFDL0IsRUFBRSxDQUFDLCtEQUErRCxFQUFDO1lBQy9ELGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtZQUNuQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdEQsQ0FBQyxDQUFDLENBQUE7UUFDRixFQUFFLENBQUMsaUZBQWlGLEVBQUM7WUFDakYsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDN0QsQ0FBQyxDQUFDLENBQUE7UUFDRixFQUFFLENBQUMsOERBQThELEVBQUM7WUFDOUQsYUFBYSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNwQyxhQUFhLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3BDLGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDcEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENB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
\ No newline at end of file
diff --git a/test/test.ts b/test/test.ts
index 17cc164..97e878b 100644
--- a/test/test.ts
+++ b/test/test.ts
@@ -1,134 +1,151 @@
-import 'typings-test'
+import { expect, tap } from 'tapbundle'
import * as events from 'events'
import * as rx from 'rxjs/Rx'
-import * as should from 'should'
+import * as smartq from 'smartq'
import lik = require('../dist/index')
-describe('lik',function(){
- describe('Stringmap',function(){
- let testStringmap: lik.Stringmap
- let testString1 = 'testString1'
- let testString2 = 'testString2'
- let testString3 = 'testString3'
- let testString4 = 'testString4'
- let testString5 = 'testString5'
- let testString6 = 'testString6'
- it('new lik.Objectmap() -> should create an instance of Stringmap',function(){
- testStringmap = new lik.Stringmap()
- should(testStringmap).be.instanceof(lik.Stringmap)
- })
- it('lik.Stringmap.checkString -> should return false for an string not in Stringmap',function(){
- should(testStringmap.checkString(testString1)).be.false()
- })
- it('lik.Stringmap.addString -> should add an string to Stringmap',function(){
- testStringmap.addString(testString1)
- testStringmap.addString(testString2)
- testStringmap.addString(testString3)
- should(testStringmap.checkString(testString1)).be.true()
- should(testStringmap.checkString(testString2)).be.true()
- should(testStringmap.checkString(testString3)).be.true()
- should(testStringmap.checkMinimatch('*String1')).be.true()
- should(testStringmap.checkMinimatch('*String2')).be.true()
- should(testStringmap.checkMinimatch('*String4')).be.false()
- })
- it('lik.Stringmap.addStringArray -> should add an array of strings',function(){
- testStringmap.addStringArray([testString4,testString5,testString6])
- should(testStringmap.checkMinimatch('*String4')).be.true()
- })
- it('lik.Stringmap.removeString -> should remove a string from Stringmap',function(){
- testStringmap.removeString(testString2)
- should(testStringmap.checkString(testString2)).be.false()
- })
- it('lik.Stringmap.getStringArray() -> should return a copy of stringArray',function(){
- let clonedArray = testStringmap.getStringArray()
- should(clonedArray[0] === 'testString1').be.true()
- should(clonedArray[0] === testString1).be.true()
- })
- it('lik.Stringmap.checkIsEmpty() -> should register a function to trigger when empty',function(){
- testStringmap.registerUntilTrue(
- () => { return testStringmap.checkIsEmpty() },
- () => { console.log('Stringmap now is empty') }
- )
- })
- it('lik.Stringmap.empty() -> should remove wipe and then notify',function(){
- testStringmap.wipe()
- })
- })
- describe('Objectmap',function(){
- interface ITestObject {
- propOne: string
- propTwo: string
- }
- let testObjectmap: lik.Objectmap
- let testObject1: ITestObject = {
- propOne: 'hello',
- propTwo: 'hello2'
- }
- let testObject2: ITestObject = {
- propOne: 'hello',
- propTwo: 'hello2'
- }
- it('new lik.Objectmap() -> should correctly instantiate an Objectmap',function(){
- testObjectmap = new lik.Objectmap()
- should(testObjectmap).be.instanceof(lik.Objectmap)
- })
- it('lik.Objectmap.add() -> should correctly add an object to Objectmap',function(){
- testObjectmap.add(testObject1)
- should(testObjectmap.checkForObject(testObject1)).be.true
- should(testObjectmap.checkForObject(testObject2)).be.false
- })
- it('lik.Objectmap.remove() -> should correctly remove an object to Objectmap',function(){
- testObjectmap.add(testObject2)
- testObjectmap.remove(testObject1)
- should(testObjectmap.checkForObject(testObject1)).be.false
- should(testObjectmap.checkForObject(testObject2)).be.true
- })
- it('Objectmap.forEach -> should correctly run a function forEach map object',function(){
- testObjectmap.forEach(itemArg => {
- should(itemArg).have.ownProperty('propOne')
- })
- })
- it('lik.Objectmap.find() -> should correctly find an object',function(){
- let myObject = {propOne: 'helloThere', propTwo: 'helloAnyway'}
- testObjectmap.add(myObject)
- let referenceObject = testObjectmap.find((itemArg) => { return (itemArg.propOne === 'helloThere') })
- should(myObject === referenceObject).be.true()
- })
- it('lik.Objectmap.getArray() -> should return a cloned array', function(){
- let myObject = {propOne : 'test1', propTwo: 'wow, how awesome'}
- testObjectmap.add(myObject)
- let clonedArray = testObjectmap.getArray()
- should(clonedArray[clonedArray.length - 1]).eql(myObject)
- })
- it('should get one object and then remove it', function() {
- let originalLength = testObjectmap.getArray().length
- let oneObject = testObjectmap.getOneAndRemove()
- should(oneObject).not.be.null()
- should(testObjectmap.getArray().length).equal(originalLength - 1)
- should(testObjectmap.getArray()).not.containEql(oneObject)
- })
- })
- describe('Observablemap',function(){
- let testObservablemap: lik.Observablemap
- let testObservable1: rx.Observable
- let testObservable2: rx.Observable
- let testObservable3: rx.Observable
- let testEmitter: events.EventEmitter
- it('should create an instance',function(){
- testObservablemap = new lik.Observablemap()
- should(testObservablemap).be.instanceof(lik.Observablemap)
- })
- it('should accept a new emitter',function(done) {
- testEmitter = new events.EventEmitter()
- testObservable1 = testObservablemap.getObservableForEmitterEvent(testEmitter,'event1')
- testObservable1.subscribe(x => {
- done()
- })
- testObservable2 = testObservablemap.getObservableForEmitterEvent(testEmitter,'event1')
- testObservable3 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event2')
- should(testObservable1 === testObservable2).be.true()
- should(testObservable1 === testObservable3).be.false()
- testEmitter.emit('event1')
- })
- })
+let testStringmap: lik.Stringmap
+let testString1 = 'testString1'
+let testString2 = 'testString2'
+let testString3 = 'testString3'
+let testString4 = 'testString4'
+let testString5 = 'testString5'
+let testString6 = 'testString6'
+tap.test('new lik.Objectmap() -> should create an instance of Stringmap', async () => {
+ testStringmap = new lik.Stringmap()
+ expect(testStringmap).be.instanceof(lik.Stringmap)
})
+tap.test('lik.Stringmap.checkString -> should return false for an string not in Stringmap', async () => {
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkString(testString1)).be.false
+})
+tap.test('lik.Stringmap.addString -> should add an string to Stringmap', async () => {
+ testStringmap.addString(testString1)
+ testStringmap.addString(testString2)
+ testStringmap.addString(testString3)
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkString(testString1)).be.true
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkString(testString2)).be.true
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkString(testString3)).be.true
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkMinimatch('*String1')).be.true
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkMinimatch('*String2')).be.true
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkMinimatch('*String4')).be.false
+})
+tap.test('lik.Stringmap.addStringArray -> should add an array of strings', async () => {
+ testStringmap.addStringArray([ testString4, testString5, testString6 ])
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkMinimatch('*String4')).be.true
+})
+tap.test('lik.Stringmap.removeString -> should remove a string from Stringmap', async () => {
+ testStringmap.removeString(testString2)
+ // tslint:disable-next-line:no-unused-expression
+ expect(testStringmap.checkString(testString2)).be.false
+})
+tap.test('lik.Stringmap.getStringArray() -> should return a copy of stringArray', async () => {
+ let clonedArray = testStringmap.getStringArray()
+ // tslint:disable-next-line:no-unused-expression
+ expect(clonedArray[ 0 ] === 'testString1').be.true
+ // tslint:disable-next-line:no-unused-expression
+ expect(clonedArray[ 0 ] === testString1).be.true
+})
+tap.test('lik.Stringmap.checkIsEmpty() -> should register a function to trigger when empty', async () => {
+ testStringmap.registerUntilTrue(
+ () => { return testStringmap.checkIsEmpty() },
+ () => { console.log('Stringmap now is empty') }
+ )
+})
+tap.test('lik.Stringmap.empty() -> should remove wipe and then notify', async () => {
+ testStringmap.wipe()
+})
+
+// Objectmap
+interface ITestObject {
+ propOne: string
+ propTwo: string
+}
+let testObjectmap: lik.Objectmap
+let testObject1: ITestObject = {
+ propOne: 'hello',
+ propTwo: 'hello2'
+}
+let testObject2: ITestObject = {
+ propOne: 'hello',
+ propTwo: 'hello2'
+}
+tap.test('new lik.Objectmap() -> should correctly instantiate an Objectmap', async () => {
+ testObjectmap = new lik.Objectmap()
+ expect(testObjectmap).be.instanceof(lik.Objectmap)
+})
+tap.test('lik.Objectmap.add() -> should correctly add an object to Objectmap', async () => {
+ testObjectmap.add(testObject1)
+ // tslint:disable-next-line:no-unused-expression
+ expect(testObjectmap.checkForObject(testObject1)).be.true
+ // tslint:disable-next-line:no-unused-expression
+ expect(testObjectmap.checkForObject(testObject2)).be.false
+})
+tap.test('lik.Objectmap.remove() -> should correctly remove an object to Objectmap', async () => {
+ testObjectmap.add(testObject2)
+ testObjectmap.remove(testObject1)
+ // tslint:disable-next-line:no-unused-expression
+ expect(testObjectmap.checkForObject(testObject1)).be.false
+ // tslint:disable-next-line:no-unused-expression
+ expect(testObjectmap.checkForObject(testObject2)).be.true
+})
+tap.test('Objectmap.forEach -> should correctly run a function forEach map object', async () => {
+ testObjectmap.forEach(itemArg => {
+ expect(itemArg).have.ownProperty('propOne')
+ })
+})
+tap.test('lik.Objectmap.find() -> should correctly find an object', async () => {
+ let myObject = { propOne: 'helloThere', propTwo: 'helloAnyway' }
+ testObjectmap.add(myObject)
+ let referenceObject = testObjectmap.find((itemArg) => { return (itemArg.propOne === 'helloThere') })
+ // tslint:disable-next-line:no-unused-expression
+ expect(myObject === referenceObject).be.true
+})
+tap.test('lik.Objectmap.getArray() -> should return a cloned array', async () => {
+ let myObject = { propOne: 'test1', propTwo: 'wow, how awesome' }
+ testObjectmap.add(myObject)
+ let clonedArray = testObjectmap.getArray()
+ expect(clonedArray[ clonedArray.length - 1 ]).eql(myObject)
+})
+tap.test('should get one object and then remove it', async () => {
+ let originalLength = testObjectmap.getArray().length
+ let oneObject = testObjectmap.getOneAndRemove()
+ // tslint:disable-next-line:no-unused-expression
+ expect(oneObject).not.be.null
+ expect(testObjectmap.getArray().length).equal(originalLength - 1)
+ expect(testObjectmap.getArray()).to.not.contain(oneObject)
+})
+let testObservablemap: lik.Observablemap
+let testObservable1: rx.Observable
+let testObservable2: rx.Observable
+let testObservable3: rx.Observable
+let testEmitter: events.EventEmitter
+tap.test('should create an instance', async () => {
+ testObservablemap = new lik.Observablemap()
+ expect(testObservablemap).be.instanceof(lik.Observablemap)
+})
+tap.test('should accept a new emitter', async () => {
+ let done = smartq.defer()
+ testEmitter = new events.EventEmitter()
+ testObservable1 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event1')
+ testObservable1.subscribe(x => {
+ done.resolve()
+ })
+ testObservable2 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event1')
+ testObservable3 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event2')
+ // tslint:disable-next-line:no-unused-expression
+ expect(testObservable1 === testObservable2).be.true
+ // tslint:disable-next-line:no-unused-expression
+ expect(testObservable1 === testObservable3).be.false
+ testEmitter.emit('event1')
+ await done.promise
+})
+
+tap.start()
diff --git a/ts/lik.objectmap.ts b/ts/lik.objectmap.ts
index 806d26c..ff6ad2d 100644
--- a/ts/lik.objectmap.ts
+++ b/ts/lik.objectmap.ts
@@ -1,121 +1,121 @@
import * as plugins from './lik.plugins'
export interface IObjectmapForEachFunction {
- (itemArg: T): void
+ (itemArg: T): void
}
export interface IObjectmapFindFunction {
- (itemArg: T): boolean
+ (itemArg: T): boolean
}
/**
* allows keeping track of objects
*/
export class Objectmap {
- private objectArray: T[] = []
+ private objectArray: T[] = []
- /**
- * returns a new instance
- */
- constructor() {
+ /**
+ * returns a new instance
+ */
+ constructor () {
+ // nothing here
+ }
+ /**
+ * add object to Objectmap
+ */
+ add (objectArg: T) {
+ this.objectArray.push(objectArg)
+ }
+
+ /**
+ * like .add but adds an whole array of objects
+ */
+ addArray (objectArrayArg: T[]) {
+ for (let item of objectArrayArg) {
+ this.add(item)
}
+ }
- /**
- * add object to Objectmap
- */
- add(objectArg: T) {
- this.objectArray.push(objectArg)
- }
+ /**
+ * check if object is in Objectmap
+ */
+ checkForObject (objectArg: T) {
+ return this.objectArray.indexOf(objectArg) !== -1
+ }
- /**
- * like .add but adds an whole array of objects
- */
- addArray(objectArrayArg: T[]) {
- for (let item of objectArrayArg) {
- this.add(item)
- }
+ /**
+ * find object
+ */
+ find (findFunction: IObjectmapFindFunction) {
+ let resultArray = this.objectArray.filter(findFunction)
+ if (resultArray.length > 0) {
+ return resultArray[ 0 ]
+ } else {
+ return null
}
+ }
- /**
- * check if object is in Objectmap
- */
- checkForObject(objectArg: T) {
- return this.objectArray.indexOf(objectArg) !== -1
+ /**
+ * finds a specific element and then removes it
+ */
+ findOneAndRemove (findFunction): T {
+ let foundElement = this.find(findFunction)
+ if (foundElement) {
+ this.remove(foundElement)
}
+ return foundElement
+ }
- /**
- * find object
- */
- find(findFunction: IObjectmapFindFunction) {
- let resultArray = this.objectArray.filter(findFunction)
- if (resultArray.length > 0) {
- return resultArray[0]
- } else {
- return null
- }
- }
+ /**
+ * run function for each item in Objectmap
+ */
+ forEach (functionArg: IObjectmapForEachFunction) {
+ return this.objectArray.forEach(functionArg)
+ }
- /**
- * finds a specific element and then removes it
- */
- findOneAndRemove(findFunction): T {
- let foundElement = this.find(findFunction)
- if (foundElement) {
- this.remove(foundElement)
- }
- return foundElement
- }
+ /**
+ * gets an object in the Observablemap and removes it, so it can't be retrieved again
+ */
+ getOneAndRemove (): T {
+ return this.objectArray.shift()
+ }
- /**
- * run function for each item in Objectmap
- */
- forEach(functionArg: IObjectmapForEachFunction) {
- return this.objectArray.forEach(functionArg)
- }
+ /**
+ * returns a cloned array of all the objects currently in the Objectmap
+ */
+ getArray () {
+ return plugins.lodash.cloneDeep(this.objectArray)
+ }
- /**
- * gets an object in the Observablemap and removes it, so it can't be retrieved again
- */
- getOneAndRemove(): T {
- return this.objectArray.shift()
+ /**
+ * check if Objectmap ist empty
+ */
+ isEmpty (): boolean {
+ if (this.objectArray.length === 0) {
+ return true
+ } else {
+ return false
}
+ }
- /**
- * returns a cloned array of all the objects currently in the Objectmap
- */
- getArray() {
- return plugins.lodash.cloneDeep(this.objectArray)
+ /**
+ * remove object from Objectmap
+ */
+ remove (objectArg: T) {
+ let replacementArray = []
+ for (let item of this.objectArray) {
+ if (item !== objectArg) {
+ replacementArray.push(item)
+ }
}
+ this.objectArray = replacementArray
+ }
- /**
- * check if Objectmap ist empty
- */
- isEmpty(): boolean {
- if (this.objectArray.length === 0) {
- return true
- } else {
- return false
- }
- }
-
- /**
- * remove object from Objectmap
- */
- remove(objectArg: T) {
- let replacementArray = []
- for (let item of this.objectArray) {
- if (item !== objectArg) {
- replacementArray.push(item)
- }
- }
- this.objectArray = replacementArray
- }
-
- /**
- * wipe Objectmap
- */
- wipe() {
- this.objectArray = []
- }
+ /**
+ * wipe Objectmap
+ */
+ wipe () {
+ this.objectArray = []
+ }
}
diff --git a/yarn.lock b/yarn.lock
index 419f5b2..2fa87be 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,23 @@
# yarn lockfile v1
+"@types/chai-as-promised@0.0.29":
+ version "0.0.29"
+ resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77"
+ dependencies:
+ "@types/chai" "*"
+ "@types/promises-a-plus" "*"
+
+"@types/chai-string@^1.1.30":
+ version "1.1.30"
+ resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.30.tgz#4d8744b31a5a2295fc01c981ed1e2d4c8a070f0a"
+ dependencies:
+ "@types/chai" "*"
+
+"@types/chai@*", "@types/chai@^3.4.35":
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.2.tgz#c11cd2817d3a401b7ba0f5a420f35c56139b1c1e"
+
"@types/lodash@^4.14.62":
version "4.14.62"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.62.tgz#8674f9861582148a60b7a89cb260f11378d11683"
@@ -10,22 +27,51 @@
version "2.0.29"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a"
-"@types/mocha@^2.2.31":
- version "2.2.40"
- resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.40.tgz#9811dd800ece544cd84b5b859917bf584a150c4c"
+"@types/node@*", "@types/node@^7.0.29":
+ version "7.0.31"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.31.tgz#80ea4d175599b2a00149c29a10a4eb2dff592e86"
+
+"@types/promises-a-plus@*":
+ version "0.0.27"
+ resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780"
"@types/q@1.x.x":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.0.0.tgz#57e5465d665b370d4217e69b344b20faa6b724f5"
-"@types/should@^8.1.30":
- version "8.1.30"
- resolved "https://registry.yarnpkg.com/@types/should/-/should-8.1.30.tgz#e6b4f3ca4fb0799f6ce3303f3a8c003df6585aa3"
+"@types/shelljs@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.6.0.tgz#090b705c102ce7fc5c0c5ea9b524418ff15840df"
+ dependencies:
+ "@types/node" "*"
+
+"@types/which@^1.0.28":
+ version "1.0.28"
+ resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6"
+
+ansi-256-colors@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a"
+
+assertion-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
balanced-match@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+beautycolor@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.7.tgz#a4715738ac4c8221371e9cbeb5a6cc6d11ecbf7c"
+ dependencies:
+ ansi-256-colors "^1.1.0"
+ typings-global "^1.0.14"
+
+bindings@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11"
+
brace-expansion@^1.0.0:
version "1.1.7"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
@@ -33,10 +79,50 @@ brace-expansion@^1.0.0:
balanced-match "^0.4.1"
concat-map "0.0.1"
+chai-as-promised@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6"
+ dependencies:
+ check-error "^1.0.2"
+
+chai-string@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.4.0.tgz#359140c051d36a4e4b1a5fc6b910152f438a8d49"
+
+chai@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
+ dependencies:
+ assertion-error "^1.0.1"
+ deep-eql "^0.1.3"
+ type-detect "^1.0.0"
+
+check-error@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+deep-eql@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
+ dependencies:
+ type-detect "0.1.1"
+
+early@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/early/-/early-2.1.1.tgz#841e23254ea5dc54d8afaeee82f5ab65c00ee23c"
+ dependencies:
+ beautycolor "^1.0.7"
+ smartq "^1.1.1"
+ typings-global "^1.0.16"
+
+es6-error@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -67,16 +153,49 @@ interpret@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.2.tgz#f4f623f0bb7122f15f5717c8e254b8161b5c5b2d"
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+leakage@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.3.0.tgz#15d698abdc76bbc6439601f4f3020e77e2d50c39"
+ dependencies:
+ es6-error "^4.0.2"
+ left-pad "^1.1.3"
+ memwatch-next "^0.3.0"
+ minimist "^1.2.0"
+ pretty-bytes "^4.0.2"
+
+left-pad@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a"
+
lodash@^4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+memwatch-next@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/memwatch-next/-/memwatch-next-0.3.0.tgz#2111050f9a906e0aa2d72a4ec0f0089c78726f8f"
+ dependencies:
+ bindings "^1.2.1"
+ nan "^2.3.2"
+
minimatch@^3.0.2, minimatch@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
dependencies:
brace-expansion "^1.0.0"
+minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+nan@^2.3.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
+
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -91,6 +210,10 @@ path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+pretty-bytes@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
+
q@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
@@ -117,7 +240,7 @@ semver@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
-shelljs@^0.7.4:
+shelljs@^0.7.4, shelljs@^0.7.6:
version "0.7.7"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
dependencies:
@@ -125,61 +248,88 @@ shelljs@^0.7.4:
interpret "^1.0.0"
rechoir "^0.6.2"
-should-equal@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-1.0.1.tgz#0b6e9516f2601a9fb0bb2dcc369afa1c7e200af7"
+smartchai@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f"
dependencies:
- should-type "^1.0.0"
+ "@types/chai" "^3.4.35"
+ "@types/chai-as-promised" "0.0.29"
+ "@types/chai-string" "^1.1.30"
+ chai "^3.5.0"
+ chai-as-promised "^6.0.0"
+ chai-string "^1.3.0"
-should-format@^3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1"
+smartdelay@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.3.tgz#5fd44dad77262d110702f0293efa80c072cfb579"
dependencies:
- should-type "^1.3.0"
- should-type-adaptors "^1.0.1"
+ smartq "^1.1.1"
+ typings-global "^1.0.16"
-should-type-adaptors@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.0.1.tgz#efe5553cdf68cff66e5c5f51b712dc351c77beaa"
+smartq@^1.1.0, smartq@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.1.tgz#efb358705260d41ae18aef7ffd815f7b6fe17dd3"
dependencies:
- should-type "^1.3.0"
- should-util "^1.0.0"
+ typed-promisify "^0.3.0"
+ typings-global "^1.0.14"
-should-type@^1.0.0, should-type@^1.3.0, should-type@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
-
-should-util@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063"
-
-should@^11.2.1:
- version "11.2.1"
- resolved "https://registry.yarnpkg.com/should/-/should-11.2.1.tgz#90f55145552d01cfc200666e4e818a1c9670eda2"
+smartshell@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/smartshell/-/smartshell-1.0.6.tgz#27b1c79029784abe72ac7e91fe698b7ebecc6629"
dependencies:
- should-equal "^1.0.0"
- should-format "^3.0.2"
- should-type "^1.4.0"
- should-type-adaptors "^1.0.1"
- should-util "^1.0.0"
+ "@types/shelljs" "^0.6.0"
+ "@types/which" "^1.0.28"
+ shelljs "^0.7.6"
+ smartq "^1.1.0"
+ which "^1.2.12"
symbol-observable@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
-typings-global@*, typings-global@^1.0.14:
+tapbundle@^1.0.14:
+ version "1.0.14"
+ resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.0.14.tgz#75827e335fcb02216f0267a26a26d702ddc02e3c"
+ dependencies:
+ early "^2.1.1"
+ leakage "^0.3.0"
+ smartchai "^1.0.3"
+ smartdelay "^1.0.3"
+ smartq "^1.1.1"
+ typings-global "^1.0.16"
+
+type-detect@0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
+
+type-detect@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
+
+typed-promisify@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/typed-promisify/-/typed-promisify-0.3.0.tgz#1ba0af5e444c87d8047406f18ce49092a1191853"
+
+typings-global@^1.0.14:
version "1.0.14"
resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.14.tgz#ab682720a03d6b9278869fb5c30c30d7dc61d12c"
dependencies:
semver "^5.3.0"
shelljs "^0.7.4"
-typings-test@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/typings-test/-/typings-test-1.0.3.tgz#fbab895eb3f0c44842e73db059f65946b971e369"
+typings-global@^1.0.16:
+ version "1.0.17"
+ resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.17.tgz#41edc331ccec3168289adc8849e1e255efbe7152"
dependencies:
- "@types/mocha" "^2.2.31"
- typings-global "*"
+ "@types/node" "^7.0.29"
+ semver "^5.3.0"
+ smartshell "^1.0.6"
+
+which@^1.2.12:
+ version "1.2.14"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
+ dependencies:
+ isexe "^2.0.0"
wrappy@1:
version "1.0.2"