From 1b755999edaef40d884b959ca2e76f97305c7bda Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 16 Jul 2016 22:28:34 -0400 Subject: [PATCH 1/2] fixes return types of some promises that were missed --- mongoose/mongoose-tests.ts | 25 +++++++++++++++++++++++++ mongoose/mongoose.d.ts | 8 +++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/mongoose/mongoose-tests.ts b/mongoose/mongoose-tests.ts index 607058093c..dc8f795672 100644 --- a/mongoose/mongoose-tests.ts +++ b/mongoose/mongoose-tests.ts @@ -1024,6 +1024,31 @@ mongoose.model('') arg.b.toFixed; }); +mongoose.model('').findOne({}) + .then(function (arg) { + arg.save; + return 2; + }).then(function (num) { + num.toFixed; + return new Promise((resolve, reject) => { + resolve('str'); + }); + }).then(function (str) { + str.toLowerCase; + }); + +mongoose.model('').aggregate() + .then(function (arg) { + return 2; + }).then(function (num) { + num.toFixed; + return new Promise((resolve, reject) => { + resolve('str'); + }); + }).then(function (str) { + str.toLowerCase; + }); + /* pluggable promise */ mongoose.Promise = Promise; mongoose.Promise.race; diff --git a/mongoose/mongoose.d.ts b/mongoose/mongoose.d.ts index 71cb91bf8c..eb4c355237 100644 --- a/mongoose/mongoose.d.ts +++ b/mongoose/mongoose.d.ts @@ -1307,7 +1307,7 @@ declare module "mongoose" { * resolved with either the doc(s) or rejected with the error. * Like .then(), but only takes a rejection handler. */ - catch(reject?: (err: any) => void): Promise; + catch(reject?: (err: any) => void | TRes | PromiseLike): Promise; /** * DEPRECATED Alias for circle @@ -1651,7 +1651,8 @@ declare module "mongoose" { }): this; /** Executes this query and returns a promise */ - then(resolve?: (res: T) => void, reject?: (err: any) => void): Promise; + then(resolve?: (res: T) => void | TRes | PromiseLike, + reject?: (err: any) => void | TRes | PromiseLike): Promise; /** * Converts this query to a customized, reusable query @@ -2071,7 +2072,8 @@ declare module "mongoose" { sort(arg: string | Object): this; /** Provides promise for aggregate. */ - then(resolve?: (val: T) => void, reject?: (err: any) => void): Promise + then(resolve?: (val: T) => void | TRes | PromiseLike, + reject?: (err: any) => void | TRes | PromiseLike): Promise /** * Appends new custom $unwind operator(s) to this aggregate pipeline. From b301b3e81c8c5d94c1d56eb57c2c054c6a88158b Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 16 Jul 2016 22:39:41 -0400 Subject: [PATCH 2/2] fixes return type of mongoosethenable --- mongoose/mongoose-tests.ts | 4 ++-- mongoose/mongoose.d.ts | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mongoose/mongoose-tests.ts b/mongoose/mongoose-tests.ts index dc8f795672..de2bffaf05 100644 --- a/mongoose/mongoose-tests.ts +++ b/mongoose/mongoose-tests.ts @@ -28,7 +28,7 @@ mongoose.connect(connectUri, { autoIndex: true }, mongos: true -}).then(cb); +}).then(cb).onReject; mongoose.connect(connectUri, function (error) { error.stack; }); @@ -46,7 +46,7 @@ mongoose.createConnection('localhost', 'database', 3000, { autoIndex: false } }).open(''); -mongoose.disconnect(cb).then(cb); +mongoose.disconnect(cb).then(cb).fulfill; mongoose.get('test'); mongoose.model('Actor', new mongoose.Schema({ name: String diff --git a/mongoose/mongoose.d.ts b/mongoose/mongoose.d.ts index eb4c355237..8112fc09a1 100644 --- a/mongoose/mongoose.d.ts +++ b/mongoose/mongoose.d.ts @@ -309,13 +309,14 @@ declare module "mongoose" { * Ability to use mongoose object as a pseudo-promise so .connect().then() * and .disconnect().then() are viable. */ - static then(onFulfill?: () => void, onRejected?: (err: mongodb.MongoError) => void): typeof MongooseThenable; + static then(onFulfill?: () => void | TRes | PromiseLike, + onRejected?: (err: mongodb.MongoError) => void | TRes | PromiseLike): Promise; /** * Ability to use mongoose object as a pseudo-promise so .connect().then() * and .disconnect().then() are viable. */ - static catch(onRejected?: (err: mongodb.MongoError) => void): typeof MongooseThenable; + static catch(onRejected?: (err: mongodb.MongoError) => void | TRes | PromiseLike): Promise; } class CastError extends _mongoose.Error {