Merge branch 'master' into 'master'
Implement smartdelay See merge request !1
This commit is contained in:
		
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					node_modules/
 | 
				
			||||||
 | 
					docs/
 | 
				
			||||||
 | 
					coverage/
 | 
				
			||||||
 | 
					public/
 | 
				
			||||||
@@ -21,4 +21,13 @@ timeouts for the async/await era, written in TypeScript
 | 
				
			|||||||
## Usage
 | 
					## Usage
 | 
				
			||||||
Use TypeScript for best in class instellisense.
 | 
					Use TypeScript for best in class instellisense.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					import * as smartdelay from 'smartdelay'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(async () => {
 | 
				
			||||||
 | 
					    await smartdelay.delayFor('3000') // excution will halt here 3 seconds for this function scope BUT NOT BLOCK anything else
 | 
				
			||||||
 | 
					    console.log()
 | 
				
			||||||
 | 
					})()
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[](https://push.rocks)
 | 
					[](https://push.rocks)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					import 'typings-global';
 | 
				
			||||||
 | 
					export declare let delayFor: <T>(timeInMillisecond: number, passOn?: T) => Promise<T>;
 | 
				
			||||||
							
								
								
									
										19
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					"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());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					require("typings-global");
 | 
				
			||||||
 | 
					exports.delayFor = (timeInMillisecond, passOn) => __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					    yield new Promise((resolve, reject) => {
 | 
				
			||||||
 | 
					        setTimeout(() => {
 | 
				
			||||||
 | 
					            resolve();
 | 
				
			||||||
 | 
					        }, timeInMillisecond);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    return passOn;
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwwQkFBdUI7QUFFWixRQUFBLFFBQVEsR0FBRyxDQUFVLGlCQUF5QixFQUFFLE1BQVU7SUFDakUsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNO1FBQzlCLFVBQVUsQ0FDTjtZQUNJLE9BQU8sRUFBRSxDQUFBO1FBQ2IsQ0FBQyxFQUNELGlCQUFpQixDQUNwQixDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDRixNQUFNLENBQUMsTUFBTSxDQUFBO0FBQ2pCLENBQUMsQ0FBQSxDQUFBIn0=
 | 
				
			||||||
							
								
								
									
										11
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								package.json
									
									
									
									
									
								
							@@ -3,6 +3,7 @@
 | 
				
			|||||||
  "version": "1.0.0",
 | 
					  "version": "1.0.0",
 | 
				
			||||||
  "description": "timeouts for the async/await era, written in TypeScript",
 | 
					  "description": "timeouts for the async/await era, written in TypeScript",
 | 
				
			||||||
  "main": "dist/index.js",
 | 
					  "main": "dist/index.js",
 | 
				
			||||||
 | 
					  "typings": "dist/index.d.ts",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "test": "(npmts)"
 | 
					    "test": "(npmts)"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
@@ -15,5 +16,13 @@
 | 
				
			|||||||
  "bugs": {
 | 
					  "bugs": {
 | 
				
			||||||
    "url": "https://gitlab.com/pushrocks/smartdelay/issues"
 | 
					    "url": "https://gitlab.com/pushrocks/smartdelay/issues"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "homepage": "https://gitlab.com/pushrocks/smartdelay#README"
 | 
					  "homepage": "https://gitlab.com/pushrocks/smartdelay#README",
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "typings-global": "^1.0.14"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@types/should": "^8.1.30",
 | 
				
			||||||
 | 
					    "should": "^11.1.2",
 | 
				
			||||||
 | 
					    "typings-test": "^1.0.3"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					import 'typings-test';
 | 
				
			||||||
							
								
								
									
										30
									
								
								test/test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								test/test.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					"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==
 | 
				
			||||||
							
								
								
									
										31
									
								
								test/test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								test/test.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					import 'typings-test'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import * as should from 'should'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import * as smartdelay from '../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<string>(3000, hey).then((stringArg) => {
 | 
				
			||||||
 | 
					            should(stringArg).equal('heyThere')
 | 
				
			||||||
 | 
					            done()
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
							
								
								
									
										13
									
								
								ts/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								ts/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					import 'typings-global'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export let delayFor = async <T>(timeInMillisecond: number, passOn?: T) => {
 | 
				
			||||||
 | 
					    await new Promise((resolve, reject) => {
 | 
				
			||||||
 | 
					        setTimeout(
 | 
				
			||||||
 | 
					            () => {
 | 
				
			||||||
 | 
					                resolve()
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            timeInMillisecond
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    return passOn
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user