Skip to content

Commit 2fd54c5

Browse files
committed
Resolvers findOne and findById now by default return object with data, not mongoose document.
1 parent ecdae3a commit 2fd54c5

File tree

5 files changed

+12
-3
lines changed

5 files changed

+12
-3
lines changed

src/definition.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ export type GraphQLResolveInfo = _GraphQLResolveInfo;
100100
export type ResolverMWResolveFn = _ResolverMWResolveFn;
101101
export type ExtendedResolveParams = ResolveParams & {
102102
query: MongooseQuery,
103+
returnMongooseDoc: boolean,
103104
};
104105

105106

src/resolvers/findById.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,15 @@ export default function findById(
3737
type: new GraphQLNonNull(GraphQLMongoID),
3838
},
3939
},
40-
resolve: (resolveParams : ExtendedResolveParams) => {
40+
resolve: (resolveParams: ExtendedResolveParams) => {
4141
const args = resolveParams.args || {};
4242

4343
if (args._id) {
4444
resolveParams.query = model.findById(args._id); // eslint-disable-line
4545
projectionHelper(resolveParams);
46-
return resolveParams.query.exec();
46+
return resolveParams.query.exec().then(res =>
47+
(res && !resolveParams.returnMongooseDoc ? res.toObject() : res)
48+
);
4749
}
4850
return Promise.resolve(null);
4951
},

src/resolvers/findOne.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ export default function findOne(
5353
sortHelper(resolveParams);
5454
projectionHelper(resolveParams);
5555

56-
return resolveParams.query.exec();
56+
return resolveParams.query.exec().then(res =>
57+
(res && !resolveParams.returnMongooseDoc ? res.toObject() : res)
58+
);
5759
},
5860
});
5961
}

src/resolvers/updateById.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ export default function updateById(
9090
resolveParams.projection =
9191
resolveParams.projection && resolveParams.projection.record || {};
9292

93+
resolveParams.returnMongooseDoc = true;
94+
9395
return findByIdResolver.resolve(resolveParams)
9496
// save changes to DB
9597
.then(doc => {

src/resolvers/updateOne.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ export default function updateOne(
9696
resolveParams.projection =
9797
resolveParams.projection && resolveParams.projection.record || {};
9898

99+
resolveParams.returnMongooseDoc = true;
100+
99101
return findOneResolver.resolve(resolveParams)
100102
// save changes to DB
101103
.then(doc => {

0 commit comments

Comments
 (0)