Skip to content

Commit 91693fd

Browse files
Mark Colanodkz
authored andcommitted
fix(FieldConverter): do not strip _id from embedded documents
1 parent 1cedf49 commit 91693fd

File tree

2 files changed

+3
-17
lines changed

2 files changed

+3
-17
lines changed

src/__tests__/fieldConverter-test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ describe('fieldConverter', () => {
170170
const embeddedFields = embeddedType._typeConfig.fields();
171171
expect(embeddedFields.email).to.be.ok;
172172
expect(embeddedFields.locationId).to.be.ok;
173-
expect(embeddedFields._id).to.be.undefined;
173+
expect(embeddedFields._id).to.be.ok;
174174
});
175175

176176
it('should return null if subdocument is empty', async () => {
@@ -262,8 +262,8 @@ describe('fieldConverter', () => {
262262
expect(languagesType.ofType.name).to.equal('Language');
263263
});
264264

265-
it('should skip pseudo mongoose _id field in document', () => {
266-
expect(languagesFields._id).to.be.undefined;
265+
it('should include pseudo mongoose _id field in document', () => {
266+
expect(languagesFields._id).to.be.ok;
267267
});
268268
});
269269

src/fieldsConverter.js

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -248,17 +248,6 @@ export function deriveComplexType(field: MongooseFieldT): ComplexTypesT {
248248
return ComplexTypes.SCALAR;
249249
}
250250

251-
function removePseudoIdField(typeComposer: TypeComposer): void {
252-
// remove pseudo object id mongoose field
253-
const gqFields = typeComposer.getFields();
254-
const pseudoFieldNames = ['_id'];
255-
pseudoFieldNames.forEach((name) => {
256-
if (gqFields[name] && gqFields[name].type === GraphQLMongoID) {
257-
typeComposer.removeField(name);
258-
}
259-
});
260-
}
261-
262251
export function scalarToGraphQL(field: MongooseFieldT): GraphQLOutputType {
263252
const typeName = _getFieldType(field);
264253

@@ -304,12 +293,10 @@ export function embeddedToGraphQL(
304293

305294
const typeName = `${prefix}${capitalize(fieldName)}`;
306295
const typeComposer = convertSchemaToGraphQL(field.schema, typeName);
307-
removePseudoIdField(typeComposer);
308296

309297
return typeComposer.getType();
310298
}
311299

312-
313300
export function enumToGraphQL(
314301
field: MongooseFieldT,
315302
prefix: string = ''
@@ -349,7 +336,6 @@ export function documentArrayToGraphQL(
349336
const typeName = `${prefix}${capitalize(_getFieldName(field))}`;
350337

351338
const typeComposer = convertModelToGraphQL(field, typeName);
352-
removePseudoIdField(typeComposer);
353339

354340
return new GraphQLList(typeComposer.getType());
355341
}

0 commit comments

Comments
 (0)