Compare commits

..

4 Commits

Author SHA1 Message Date
5138219563 3.0.0 2019-03-26 12:02:02 +01:00
93f426cce0 BREAKING CHANGE(remove util dependency and promisify functionality): update 2019-03-26 12:02:01 +01:00
e42061047a 2.0.5 2018-07-03 08:41:43 +02:00
3b07f99488 fix(README): fix import statement 2018-07-03 08:41:42 +02:00
5 changed files with 10 additions and 21 deletions

View File

@ -29,7 +29,7 @@ Use TypeScript for best in class instellisense.
> smartq does not repeat any native functions, so for things like .all() simply use Promise.all() > smartq does not repeat any native functions, so for things like .all() simply use Promise.all()
```javascript ```javascript
import * as q from 'smartq' import * as q from '@pushrocks/smartpromise'
// Deferred // Deferred
// ----------------------------------------------- // -----------------------------------------------

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartpromise", "name": "@pushrocks/smartpromise",
"version": "2.0.4", "version": "3.0.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@ -1,7 +1,7 @@
{ {
"name": "@pushrocks/smartpromise", "name": "@pushrocks/smartpromise",
"private": false, "private": false,
"version": "2.0.4", "version": "3.0.0",
"description": "dropin replacement for q", "description": "dropin replacement for q",
"main": "dist/index.js", "main": "dist/index.js",
"typings": "dist/index.d.ts", "typings": "dist/index.d.ts",

View File

@ -1,10 +1,6 @@
import { expect, tap } from 'tapbundle'; import { expect, tap } from 'tapbundle';
import * as q from '../ts/index'; import * as q from '../ts/index';
let myCallback = (someValue1: string, cb?) => {
cb(null, someValue1);
};
tap.test('should return a Deferred for .defer()', async () => { tap.test('should return a Deferred for .defer()', async () => {
let myDeferred = q.defer(); let myDeferred = q.defer();
let expectPromise = expect(myDeferred.promise).to.eventually.be.fulfilled; let expectPromise = expect(myDeferred.promise).to.eventually.be.fulfilled;
@ -20,16 +16,10 @@ tap.test('should let types flow through the Promise', async () => {
return expectPromise; 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 () => { tap.test('should map callbacks', async () => {
let inputArray = ['hi', 'awesome']; let inputArray = ['hi', 'awesome'];
let myPromisified = q.promisify(myCallback); const myPromisified = async (myInput) => { return myInput };
let expectPromise = expect(q.map(inputArray, myPromisified)).to.eventually.deep.equal(inputArray); const expectPromise = expect(q.map(inputArray, myPromisified)).to.eventually.deep.equal(inputArray);
return expectPromise; return expectPromise;
}); });

View File

@ -1,5 +1,3 @@
import * as util from 'util';
export interface IResolve<T> { export interface IResolve<T> {
(value?: T | Promise<T>): void; (value?: T | Promise<T>): void;
} }
@ -42,14 +40,15 @@ export let rejectedPromise = err => {
return Promise.reject(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) => { export let map = async <T>(inputArg: T[], functionArg: IAsyncFunction<T> ) => {
let promisifedFunction = promisify(functionArg);
let promiseArray: Promise<any>[] = []; let promiseArray: Promise<any>[] = [];
let resultArray = []; let resultArray = [];
for (let item of inputArg) { for (let item of inputArg) {
let promise: Promise<any> = promisifedFunction(item); let promise: Promise<any> = functionArg(item);
promiseArray.push(promise); promiseArray.push(promise);
promise.then(x => { promise.then(x => {
resultArray.push(x); resultArray.push(x);