diff --git a/mongoose/mongoose-tests.ts b/mongoose/mongoose-tests.ts
index 8e4fa4a1ef..911e152db2 100644
--- a/mongoose/mongoose-tests.ts
+++ b/mongoose/mongoose-tests.ts
@@ -196,6 +196,18 @@ QCModel.find({}).cursor({}).on('data', function (doc: any) {
}).on('error', function (error: any) {
throw error;
}).close().then(cb).catch(cb);
+querycursor.map(function (doc) {
+ doc.foo = "bar";
+ return doc;
+}).on('data', function (doc: any) {
+ console.log(doc.foo);
+});
+querycursor.map(function (doc) {
+ doc.foo = "bar";
+ return doc;
+}).next(function (error, doc) {
+ console.log(doc.foo);
+});
/*
* section virtualtype.js
diff --git a/mongoose/mongoose.d.ts b/mongoose/mongoose.d.ts
index 1b1cba3e8c..360fa9f69d 100644
--- a/mongoose/mongoose.d.ts
+++ b/mongoose/mongoose.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Mongoose 4.6.8
+// Type definitions for Mongoose 4.7.0
// Project: http://mongoosejs.com/
// Definitions by: simonxca , horiuchi
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -496,11 +496,17 @@ declare module "mongoose" {
*/
eachAsync(fn: (doc: T) => any, callback?: (err: any) => void): Promise;
+ /**
+ * Registers a transform function which subsequently maps documents retrieved
+ * via the streams interface or .next()
+ */
+ map(fn: (doc: T) => T): this;
+
/**
* Get the next document from this cursor. Will return null when there are
* no documents left.
*/
- next(callback?: (err: any) => void): Promise;
+ next(callback?: (err: any, doc?: T) => void): Promise;
}
/*
@@ -563,6 +569,12 @@ declare module "mongoose" {
/** Compiles indexes from fields and schema-level indexes */
indexes(): any[];
+ /**
+ * Loads an ES6 class into a schema. Maps setters + getters, static methods, and
+ * instance methods to schema virtuals, statics, and methods.
+ */
+ loadClass(model: Function): this;
+
/**
* Adds an instance method to documents constructed from Models compiled from this schema.
* If a hash of name/fn pairs is passed as the only argument, each name/fn pair will be added as methods.