Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
d1bc689b35 | |||
25c0deb3f3 | |||
5138219563 | |||
93f426cce0 | |||
e42061047a | |||
3b07f99488 | |||
3d252a5e3e | |||
d82722296b |
@ -26,6 +26,7 @@ mirror:
|
||||
snyk:
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install -g snyk
|
||||
- npmci command npm install --ignore-scripts
|
||||
- npmci command snyk test
|
||||
@ -36,21 +37,11 @@ snyk:
|
||||
# ====================
|
||||
# test stage
|
||||
# ====================
|
||||
testLEGACY:
|
||||
stage: test
|
||||
script:
|
||||
- npmci node install legacy
|
||||
- npmci npm install
|
||||
- npmci npm test
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- docker
|
||||
- notpriv
|
||||
allow_failure: true
|
||||
|
||||
testLTS:
|
||||
stage: test
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci node install lts
|
||||
- npmci npm install
|
||||
- npmci npm test
|
||||
@ -62,6 +53,7 @@ testLTS:
|
||||
testSTABLE:
|
||||
stage: test
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci npm test
|
||||
@ -117,8 +109,10 @@ pages:
|
||||
image: hosttoday/ht-docker-node:npmci
|
||||
stage: metadata
|
||||
script:
|
||||
- npmci command npm install -g npmpage
|
||||
- npmci command npmpage
|
||||
- npmci command npm install -g typedoc typescript
|
||||
- npmci npm prepare
|
||||
- npmci npm install
|
||||
- npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/
|
||||
tags:
|
||||
- docker
|
||||
- notpriv
|
||||
@ -129,13 +123,3 @@ pages:
|
||||
paths:
|
||||
- public
|
||||
allow_failure: true
|
||||
|
||||
windowsCompatibility:
|
||||
image: stefanscherer/node-windows:10-build-tools
|
||||
stage: metadata
|
||||
script:
|
||||
- npm install & npm test
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- windows
|
||||
allow_failure: true
|
||||
|
40
README.md
40
README.md
@ -1,25 +1,20 @@
|
||||
# smartpromise
|
||||
# @pushrocks/smartpromise
|
||||
simple promises and Deferred constructs
|
||||
|
||||
dropin replacement for q
|
||||
|
||||
## Availabililty
|
||||
|
||||
[](https://www.npmjs.com/package/smartq)
|
||||
[](https://GitLab.com/pushrocks/smartq)
|
||||
[](https://github.com/pushrocks/smartq)
|
||||
[](https://pushrocks.gitlab.io/smartq/)
|
||||
## Availabililty and Links
|
||||
* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartpromise)
|
||||
* [gitlab.com (source)](https://gitlab.com/pushrocks/smartpromise)
|
||||
* [github.com (source mirror)](https://github.com/pushrocks/smartpromise)
|
||||
* [docs (typedoc)](https://pushrocks.gitlab.io/smartpromise/)
|
||||
|
||||
## Status for master
|
||||
|
||||
[](https://GitLab.com/pushrocks/smartq/commits/master)
|
||||
[](https://GitLab.com/pushrocks/smartq/commits/master)
|
||||
[](https://www.npmjs.com/package/smartq)
|
||||
[](https://david-dm.org/pushrocks/smartq)
|
||||
[](https://www.bithound.io/github/pushrocks/smartq/master/dependencies/npm)
|
||||
[](https://www.bithound.io/github/pushrocks/smartq)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[](http://standardjs.com/)
|
||||
[](https://gitlab.com/pushrocks/smartpromise/commits/master)
|
||||
[](https://gitlab.com/pushrocks/smartpromise/commits/master)
|
||||
[](https://www.npmjs.com/package/@pushrocks/smartpromise)
|
||||
[](https://snyk.io/test/npm/@pushrocks/smartpromise)
|
||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
[](https://prettier.io/)
|
||||
|
||||
## Usage
|
||||
|
||||
@ -29,7 +24,7 @@ Use TypeScript for best in class instellisense.
|
||||
> smartq does not repeat any native functions, so for things like .all() simply use Promise.all()
|
||||
|
||||
```javascript
|
||||
import * as q from 'smartq'
|
||||
import * as q from '@pushrocks/smartpromise'
|
||||
|
||||
// Deferred
|
||||
// -----------------------------------------------
|
||||
@ -77,8 +72,9 @@ myPromisedFunction('helloThere', 2).then(x => {
|
||||
})
|
||||
```
|
||||
|
||||
For further information read the linked docs at the top of this README.
|
||||
For further information read the linked docs at the top of this readme.
|
||||
|
||||
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
|
||||
|
||||
[](https://push.rocks)
|
||||
[](https://maintainedby.lossless.com)
|
||||
|
@ -4,5 +4,15 @@
|
||||
"npmts"
|
||||
],
|
||||
"npmAccessLevel": "public"
|
||||
},
|
||||
"gitzone": {
|
||||
"module": {
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "pushrocks",
|
||||
"gitrepo": "smartpromise",
|
||||
"shortDescription": "simple promises and Deferred constructs",
|
||||
"npmPackagename": "@pushrocks/smartpromise",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/smartpromise",
|
||||
"version": "2.0.3",
|
||||
"version": "3.0.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@pushrocks/smartpromise",
|
||||
"private": false,
|
||||
"version": "2.0.3",
|
||||
"version": "3.0.1",
|
||||
"description": "dropin replacement for q",
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
|
18
test/test.ts
18
test/test.ts
@ -1,10 +1,6 @@
|
||||
import { expect, tap } from 'tapbundle';
|
||||
import * as q from '../ts/index';
|
||||
|
||||
let myCallback = (someValue1: string, cb?) => {
|
||||
cb(null, someValue1);
|
||||
};
|
||||
|
||||
tap.test('should return a Deferred for .defer()', async () => {
|
||||
let myDeferred = q.defer();
|
||||
let expectPromise = expect(myDeferred.promise).to.eventually.be.fulfilled;
|
||||
@ -20,16 +16,14 @@ tap.test('should let types flow through the Promise', async () => {
|
||||
return expectPromise;
|
||||
});
|
||||
|
||||
tap.test('should promisify a callback', async () => {
|
||||
let myPromisified = q.promisify(myCallback);
|
||||
let expectPromise = expect(myPromisified('hi')).to.eventually.equal('hi');
|
||||
return await expectPromise;
|
||||
});
|
||||
|
||||
tap.test('should map callbacks', async () => {
|
||||
let inputArray = ['hi', 'awesome'];
|
||||
let myPromisified = q.promisify(myCallback);
|
||||
let expectPromise = expect(q.map(inputArray, myPromisified)).to.eventually.deep.equal(inputArray);
|
||||
const myPromisified = async myInput => {
|
||||
return myInput;
|
||||
};
|
||||
const expectPromise = expect(q.map(inputArray, myPromisified)).to.eventually.deep.equal(
|
||||
inputArray
|
||||
);
|
||||
return expectPromise;
|
||||
});
|
||||
|
||||
|
11
ts/index.ts
11
ts/index.ts
@ -1,5 +1,3 @@
|
||||
import * as util from 'util';
|
||||
|
||||
export interface IResolve<T> {
|
||||
(value?: T | Promise<T>): void;
|
||||
}
|
||||
@ -42,14 +40,15 @@ export let rejectedPromise = err => {
|
||||
return Promise.reject(err);
|
||||
};
|
||||
|
||||
export let promisify = util.promisify;
|
||||
interface IAsyncFunction<T> {
|
||||
(someArg: T): Promise<T>;
|
||||
}
|
||||
|
||||
export let map = async <T>(inputArg: T[], functionArg) => {
|
||||
let promisifedFunction = promisify(functionArg);
|
||||
export let map = async <T>(inputArg: T[], functionArg: IAsyncFunction<T>) => {
|
||||
let promiseArray: Promise<any>[] = [];
|
||||
let resultArray = [];
|
||||
for (let item of inputArg) {
|
||||
let promise: Promise<any> = promisifedFunction(item);
|
||||
let promise: Promise<any> = functionArg(item);
|
||||
promiseArray.push(promise);
|
||||
promise.then(x => {
|
||||
resultArray.push(x);
|
||||
|
16
tslint.json
16
tslint.json
@ -1,3 +1,17 @@
|
||||
{
|
||||
"extends": "tslint-config-standard"
|
||||
"extends": ["tslint:latest", "tslint-config-prettier"],
|
||||
"rules": {
|
||||
"semicolon": [true, "always"],
|
||||
"no-console": false,
|
||||
"ordered-imports": false,
|
||||
"object-literal-sort-keys": false,
|
||||
"member-ordering": {
|
||||
"options":{
|
||||
"order": [
|
||||
"static-method"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultSeverity": "warning"
|
||||
}
|
||||
|
Reference in New Issue
Block a user