From 372310a0e0b3c46a3dbe858b9d7053624b72b62e Mon Sep 17 00:00:00 2001 From: Julian Grinblat Date: Tue, 9 Apr 2019 15:32:33 +0900 Subject: [PATCH] fix: PageInfo must define one or more fields Fixes a regression introduced in `v3.1`. `schemaComposer.createObjectTC` accepts a `typeDef`, which could be a `string` (as in https://github.com/graphql-compose/graphql-compose-elasticsearch/blob/v3.1.1/src/resolvers/searchConnection.js#L141). `cfg` does not have `field` attributes in this case, causing `PageInfo` to be empty. Closes #60 --- src/utils.js | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/utils.js b/src/utils.js index ef10df2..1e7def6 100644 --- a/src/utils.js +++ b/src/utils.js @@ -38,28 +38,25 @@ export function prepareCommonOpts( schemaComposer, getOrCreateOTC: (typeName, cfgOrThunk) => { return schemaComposer.getOrSet(typeName, () => { - const tc = schemaComposer.createObjectTC(typeName); - const cfg = isFunction(cfgOrThunk) ? (cfgOrThunk: any)() : cfgOrThunk; - tc.setFields(cfg.fields); - tc.setDescription(cfg.description); + const tc = schemaComposer.createObjectTC( + isFunction(cfgOrThunk) ? (cfgOrThunk: any)() : cfgOrThunk + ); return tc; }); }, getOrCreateITC: (typeName, cfgOrThunk) => { return schemaComposer.getOrSet(typeName, () => { - const tc = schemaComposer.createInputTC(typeName); - const cfg = isFunction(cfgOrThunk) ? (cfgOrThunk: any)() : cfgOrThunk; - tc.setFields(cfg.fields); - tc.setDescription(cfg.description); + const tc = schemaComposer.createInputTC( + isFunction(cfgOrThunk) ? (cfgOrThunk: any)() : cfgOrThunk + ); return tc; }); }, getOrCreateETC: (typeName, cfgOrThunk) => { return schemaComposer.getOrSet(typeName, () => { - const tc = schemaComposer.createEnumTC(typeName); - const cfg = isFunction(cfgOrThunk) ? (cfgOrThunk: any)() : cfgOrThunk; - tc.setFields(cfg.values); - tc.setDescription(cfg.description); + const tc = schemaComposer.createEnumTC( + isFunction(cfgOrThunk) ? (cfgOrThunk: any)() : cfgOrThunk + ); return tc; }); },