add cancelable Timeout
This commit is contained in:
		
							
								
								
									
										14
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +1,16 @@
 | 
			
		||||
import 'typings-global';
 | 
			
		||||
/**
 | 
			
		||||
 * delay something, works like setTimeout
 | 
			
		||||
 * @param timeInMillisecond
 | 
			
		||||
 * @param passOn
 | 
			
		||||
 */
 | 
			
		||||
export declare let delayFor: <T>(timeInMillisecond: number, passOn?: T) => Promise<T>;
 | 
			
		||||
export declare class Timeout<T> {
 | 
			
		||||
    promise: Promise<T>;
 | 
			
		||||
    private _deferred;
 | 
			
		||||
    private _timeout;
 | 
			
		||||
    private _cancelled;
 | 
			
		||||
    constructor(timeInMillisecondArg: any, passOn?: T);
 | 
			
		||||
    makeUnrefed(): void;
 | 
			
		||||
    cancel(): void;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@@ -7,7 +7,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
			
		||||
        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
require("typings-global");
 | 
			
		||||
const smartq = require("smartq");
 | 
			
		||||
/**
 | 
			
		||||
 * delay something, works like setTimeout
 | 
			
		||||
 * @param timeInMillisecond
 | 
			
		||||
 * @param passOn
 | 
			
		||||
 */
 | 
			
		||||
exports.delayFor = (timeInMillisecond, passOn) => __awaiter(this, void 0, void 0, function* () {
 | 
			
		||||
    yield new Promise((resolve, reject) => {
 | 
			
		||||
        setTimeout(() => {
 | 
			
		||||
@@ -16,4 +23,24 @@ exports.delayFor = (timeInMillisecond, passOn) => __awaiter(this, void 0, void 0
 | 
			
		||||
    });
 | 
			
		||||
    return passOn;
 | 
			
		||||
});
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwwQkFBdUI7QUFFWixRQUFBLFFBQVEsR0FBRyxDQUFVLGlCQUF5QixFQUFFLE1BQVU7SUFDakUsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNO1FBQzlCLFVBQVUsQ0FDTjtZQUNJLE9BQU8sRUFBRSxDQUFBO1FBQ2IsQ0FBQyxFQUNELGlCQUFpQixDQUNwQixDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDRixNQUFNLENBQUMsTUFBTSxDQUFBO0FBQ2pCLENBQUMsQ0FBQSxDQUFBIn0=
 | 
			
		||||
class Timeout {
 | 
			
		||||
    constructor(timeInMillisecondArg, passOn) {
 | 
			
		||||
        this._cancelled = false;
 | 
			
		||||
        this._deferred = smartq.defer();
 | 
			
		||||
        this.promise = this._deferred.promise;
 | 
			
		||||
        this._timeout = setTimeout(() => {
 | 
			
		||||
            if (!this._cancelled) {
 | 
			
		||||
                this._deferred.resolve(passOn);
 | 
			
		||||
            }
 | 
			
		||||
        }, timeInMillisecondArg);
 | 
			
		||||
    }
 | 
			
		||||
    makeUnrefed() {
 | 
			
		||||
        this._timeout.unref();
 | 
			
		||||
    }
 | 
			
		||||
    cancel() {
 | 
			
		||||
        this._cancelled = true;
 | 
			
		||||
        this.makeUnrefed();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
exports.Timeout = Timeout;
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsMEJBQXVCO0FBQ3ZCLGlDQUFnQztBQUVoQzs7OztHQUlHO0FBQ1EsUUFBQSxRQUFRLEdBQUcsQ0FBVSxpQkFBeUIsRUFBRSxNQUFVO0lBQ25FLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTTtRQUNoQyxVQUFVLENBQ1I7WUFDRSxPQUFPLEVBQUUsQ0FBQTtRQUNYLENBQUMsRUFDRCxpQkFBaUIsQ0FDbEIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQSxDQUFBO0FBRUQ7SUFLRSxZQUFhLG9CQUFvQixFQUFFLE1BQVU7UUFEckMsZUFBVSxHQUFZLEtBQUssQ0FBQTtRQUVqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUssQ0FBQTtRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQ3pCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2hDLENBQUM7UUFDSCxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQTtRQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDcEIsQ0FBQztDQUNGO0FBdkJELDBCQXVCQyJ9
 | 
			
		||||
							
								
								
									
										12
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "smartdelay",
 | 
			
		||||
  "version": "1.0.1",
 | 
			
		||||
  "lockfileVersion": 1,
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@types/node": {
 | 
			
		||||
      "version": "7.0.27",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.27.tgz",
 | 
			
		||||
      "integrity": "sha512-2QMiuVOEye2yKmMwE1V96C9HSShmT0WSm6dv2WjacvePEjQNNJGAerTO5hdYhj5lpdK5MW+FVxmyzDhr4omIdw=="
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -18,11 +18,10 @@
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://gitlab.com/pushrocks/smartdelay#README",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "typings-global": "^1.0.14"
 | 
			
		||||
    "smartq": "^1.1.1",
 | 
			
		||||
    "typings-global": "^1.0.16"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/should": "^8.1.30",
 | 
			
		||||
    "should": "^11.1.2",
 | 
			
		||||
    "typings-test": "^1.0.3"
 | 
			
		||||
    "tapbundle": "^1.0.13"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1 +0,0 @@
 | 
			
		||||
import 'typings-test';
 | 
			
		||||
							
								
								
									
										30
									
								
								test/test.js
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								test/test.js
									
									
									
									
									
								
							@@ -1,30 +0,0 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
require("typings-test");
 | 
			
		||||
const should = require("should");
 | 
			
		||||
const smartdelay = require("../dist/index");
 | 
			
		||||
describe('smartdelay', function () {
 | 
			
		||||
    it('.delayFor should delay async', function (done) {
 | 
			
		||||
        this.timeout(5000);
 | 
			
		||||
        let timePassed = false;
 | 
			
		||||
        setTimeout(() => {
 | 
			
		||||
            timePassed = true;
 | 
			
		||||
        }, 2000);
 | 
			
		||||
        smartdelay.delayFor(3000).then(() => {
 | 
			
		||||
            should(timePassed).be.true();
 | 
			
		||||
            done();
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
    it('.delayFor should pass on a type', function (done) {
 | 
			
		||||
        this.timeout(5000);
 | 
			
		||||
        let timePassed = false;
 | 
			
		||||
        setTimeout(() => {
 | 
			
		||||
            timePassed = true;
 | 
			
		||||
        }, 2000);
 | 
			
		||||
        let hey = 'heyThere';
 | 
			
		||||
        smartdelay.delayFor(3000, hey).then((stringArg) => {
 | 
			
		||||
            should(stringArg).equal('heyThere');
 | 
			
		||||
            done();
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUVyQixpQ0FBZ0M7QUFFaEMsNENBQTJDO0FBRTNDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7SUFDbkIsRUFBRSxDQUFDLDhCQUE4QixFQUFFLFVBQVMsSUFBSTtRQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN0QixVQUFVLENBQUM7WUFDUCxVQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUNQLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDNUIsSUFBSSxFQUFFLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ0YsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLFVBQVMsSUFBSTtRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN0QixVQUFVLENBQUM7WUFDUCxVQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUNQLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQTtRQUNwQixVQUFVLENBQUMsUUFBUSxDQUFTLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTO1lBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDbkMsSUFBSSxFQUFFLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUEifQ==
 | 
			
		||||
							
								
								
									
										54
									
								
								test/test.ts
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								test/test.ts
									
									
									
									
									
								
							@@ -1,31 +1,39 @@
 | 
			
		||||
import 'typings-test'
 | 
			
		||||
 | 
			
		||||
import * as should from 'should'
 | 
			
		||||
import { expect, tap } from 'tapbundle'
 | 
			
		||||
 | 
			
		||||
import * as smartdelay from '../dist/index'
 | 
			
		||||
 | 
			
		||||
describe('smartdelay', function () {
 | 
			
		||||
    it('.delayFor should delay async', function(done) {
 | 
			
		||||
        this.timeout(5000)
 | 
			
		||||
tap.test('.delayFor should delay async', async (tools) => {
 | 
			
		||||
  tools.timeout(5000)
 | 
			
		||||
  let timePassed = false
 | 
			
		||||
  setTimeout(() => {
 | 
			
		||||
    timePassed = true
 | 
			
		||||
        },2000)
 | 
			
		||||
        smartdelay.delayFor(3000).then(() => {
 | 
			
		||||
            should(timePassed).be.true()
 | 
			
		||||
            done()
 | 
			
		||||
        })
 | 
			
		||||
    })
 | 
			
		||||
    it('.delayFor should pass on a type', function(done) {
 | 
			
		||||
        this.timeout(5000)
 | 
			
		||||
        let timePassed = false
 | 
			
		||||
        setTimeout(() => {
 | 
			
		||||
            timePassed = true
 | 
			
		||||
        },2000)
 | 
			
		||||
        let hey = 'heyThere'
 | 
			
		||||
        smartdelay.delayFor<string>(3000, hey).then((stringArg) => {
 | 
			
		||||
            should(stringArg).equal('heyThere')
 | 
			
		||||
            done()
 | 
			
		||||
        })
 | 
			
		||||
  }, 2000)
 | 
			
		||||
  await smartdelay.delayFor(3000).then(async () => {
 | 
			
		||||
    // tslint:disable-next-line:no-unused-expression
 | 
			
		||||
    expect(timePassed).to.be.true
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tap.test('.delayFor should pass on a type', async (tools) => {
 | 
			
		||||
  tools.timeout(5000)
 | 
			
		||||
  let timePassed = false
 | 
			
		||||
  setTimeout(() => {
 | 
			
		||||
    timePassed = true
 | 
			
		||||
  }, 2000)
 | 
			
		||||
  let hey = 'heyThere'
 | 
			
		||||
  await smartdelay.delayFor<string>(3000, hey).then(async (stringArg) => {
 | 
			
		||||
    expect(stringArg).equal('heyThere')
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tap.test('smartdelay.Timeout', async () => {
 | 
			
		||||
  let timeout = new smartdelay.Timeout(2000)
 | 
			
		||||
  await timeout.promise
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tap.test('smartdelay.Timeout should cancel', async (tools) => {
 | 
			
		||||
  let timeout = new smartdelay.Timeout(60000)
 | 
			
		||||
  timeout.cancel()
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tap.start()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								ts/index.ts
									
									
									
									
									
								
							@@ -1,5 +1,11 @@
 | 
			
		||||
import 'typings-global'
 | 
			
		||||
import * as smartq from 'smartq'
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * delay something, works like setTimeout
 | 
			
		||||
 * @param timeInMillisecond
 | 
			
		||||
 * @param passOn
 | 
			
		||||
 */
 | 
			
		||||
export let delayFor = async <T>(timeInMillisecond: number, passOn?: T) => {
 | 
			
		||||
  await new Promise((resolve, reject) => {
 | 
			
		||||
    setTimeout(
 | 
			
		||||
@@ -11,3 +17,28 @@ export let delayFor = async <T>(timeInMillisecond: number, passOn?: T) => {
 | 
			
		||||
  })
 | 
			
		||||
  return passOn
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class Timeout<T> {
 | 
			
		||||
  promise: Promise<T>
 | 
			
		||||
  private _deferred: smartq.Deferred<T>
 | 
			
		||||
  private _timeout: any
 | 
			
		||||
  private _cancelled: boolean = false
 | 
			
		||||
  constructor (timeInMillisecondArg, passOn?: T) {
 | 
			
		||||
    this._deferred = smartq.defer<T>()
 | 
			
		||||
    this.promise = this._deferred.promise
 | 
			
		||||
    this._timeout = setTimeout(() => {
 | 
			
		||||
      if (!this._cancelled) {
 | 
			
		||||
        this._deferred.resolve(passOn)
 | 
			
		||||
      }
 | 
			
		||||
    }, timeInMillisecondArg)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  makeUnrefed () {
 | 
			
		||||
    this._timeout.unref()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  cancel () {
 | 
			
		||||
    this._cancelled = true
 | 
			
		||||
    this.makeUnrefed()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										258
									
								
								yarn.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										258
									
								
								yarn.lock
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,258 @@
 | 
			
		||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
 | 
			
		||||
# 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/promises-a-plus@*":
 | 
			
		||||
  version "0.0.27"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780"
 | 
			
		||||
 | 
			
		||||
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.1.7:
 | 
			
		||||
  version "1.1.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    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.3.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.3.0.tgz#df6139f294391b1035be5606f60a843b3a5041e7"
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
 | 
			
		||||
fs.realpath@^1.0.0:
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
 | 
			
		||||
 | 
			
		||||
glob@^7.0.0:
 | 
			
		||||
  version "7.1.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    fs.realpath "^1.0.0"
 | 
			
		||||
    inflight "^1.0.4"
 | 
			
		||||
    inherits "2"
 | 
			
		||||
    minimatch "^3.0.4"
 | 
			
		||||
    once "^1.3.0"
 | 
			
		||||
    path-is-absolute "^1.0.0"
 | 
			
		||||
 | 
			
		||||
inflight@^1.0.4:
 | 
			
		||||
  version "1.0.6"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    once "^1.3.0"
 | 
			
		||||
    wrappy "1"
 | 
			
		||||
 | 
			
		||||
inherits@2:
 | 
			
		||||
  version "2.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
 | 
			
		||||
 | 
			
		||||
interpret@^1.0.0:
 | 
			
		||||
  version "1.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
 | 
			
		||||
 | 
			
		||||
leakage@^0.2.0:
 | 
			
		||||
  version "0.2.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.2.0.tgz#9e7a8cc1d241d8c8427e348769e192e172fd8733"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    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"
 | 
			
		||||
 | 
			
		||||
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.4:
 | 
			
		||||
  version "3.0.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    brace-expansion "^1.1.7"
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    wrappy "1"
 | 
			
		||||
 | 
			
		||||
path-is-absolute@^1.0.0:
 | 
			
		||||
  version "1.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
 | 
			
		||||
rechoir@^0.6.2:
 | 
			
		||||
  version "0.6.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    resolve "^1.1.6"
 | 
			
		||||
 | 
			
		||||
resolve@^1.1.6:
 | 
			
		||||
  version "1.3.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    path-parse "^1.0.5"
 | 
			
		||||
 | 
			
		||||
semver@^5.3.0:
 | 
			
		||||
  version "5.3.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
 | 
			
		||||
 | 
			
		||||
shelljs@^0.7.7:
 | 
			
		||||
  version "0.7.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    glob "^7.0.0"
 | 
			
		||||
    interpret "^1.0.0"
 | 
			
		||||
    rechoir "^0.6.2"
 | 
			
		||||
 | 
			
		||||
smartchai@^1.0.3:
 | 
			
		||||
  version "1.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@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"
 | 
			
		||||
 | 
			
		||||
smartdelay@^1.0.1:
 | 
			
		||||
  version "1.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.1.tgz#687f8bcc09d7c62c9c5a8a1771c1aba3aff54156"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    typings-global "^1.0.14"
 | 
			
		||||
 | 
			
		||||
smartq@^1.1.1:
 | 
			
		||||
  version "1.1.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.1.tgz#efb358705260d41ae18aef7ffd815f7b6fe17dd3"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    typed-promisify "^0.3.0"
 | 
			
		||||
    typings-global "^1.0.14"
 | 
			
		||||
 | 
			
		||||
tapbundle@^1.0.13:
 | 
			
		||||
  version "1.0.13"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.0.13.tgz#0b274aed6a386c0c01d8d517709381ce96e3971e"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    early "^2.1.1"
 | 
			
		||||
    leakage "^0.2.0"
 | 
			
		||||
    smartchai "^1.0.3"
 | 
			
		||||
    smartdelay "^1.0.1"
 | 
			
		||||
    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, typings-global@^1.0.16:
 | 
			
		||||
  version "1.0.16"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.16.tgz#489b71781af24268750c2899316400a5e482961f"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    semver "^5.3.0"
 | 
			
		||||
    shelljs "^0.7.7"
 | 
			
		||||
 | 
			
		||||
wrappy@1:
 | 
			
		||||
  version "1.0.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
 | 
			
		||||
		Reference in New Issue
	
	Block a user