Merge branch 'master' into 'master'
Implement smartdelay See merge request !1
This commit is contained in:
commit
431f4f7169
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()
|
||||||
|
})()
|
||||||
|
```
|
||||||
|
|
||||||
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)
|
[![npm](https://push.rocks/assets/repo-header.svg)](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
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user