From e7ace0c6fb483781e7013fb242c8cf62e7e46091 Mon Sep 17 00:00:00 2001 From: Francois Zaninotto Date: Wed, 26 Jul 2017 15:25:07 +0200 Subject: [PATCH 1/2] use makeExecutableSchema instead of rootValue --- package.json | 5 +- src/jsonGraphqlExpress.js | 20 ++-- src/resolver/all.js | 11 +- src/resolver/create.js | 2 +- src/resolver/index.js | 46 +++++--- src/resolver/meta.js | 2 +- src/resolver/remove.js | 2 +- src/resolver/single.js | 2 +- src/resolver/update.js | 2 +- yarn.lock | 225 +++++++++++++++----------------------- 10 files changed, 136 insertions(+), 181 deletions(-) diff --git a/package.json b/package.json index 3b36b56..fb3fe09 100644 --- a/package.json +++ b/package.json @@ -63,10 +63,9 @@ "apollo-client": "~1.2.0", "apollo-test-utils": "~0.3.2", "babel-plugin-transform-runtime": "~6.23.0", - "body-parser": "~1.17.2", "express": "~4.15.3", - "graphql": "~0.9.6", - "graphql-server-express": "~1.0.0", + "express-graphql": "^0.6.6", + "graphql": "~0.10.3", "graphql-tag": "~2.0.0", "graphql-tools": "~1.1.0", "inflection": "~1.12.0", diff --git a/src/jsonGraphqlExpress.js b/src/jsonGraphqlExpress.js index c417a61..e07d0dc 100644 --- a/src/jsonGraphqlExpress.js +++ b/src/jsonGraphqlExpress.js @@ -1,5 +1,6 @@ -import bodyParser from 'body-parser'; -import { graphqlExpress } from 'graphql-server-express'; +import graphqlHTTP from 'express-graphql'; +import { printSchema } from 'graphql'; +const { makeExecutableSchema } = require('graphql-tools'); import getSchemaFromData from './introspection/getSchemaFromData'; import resolver from './resolver'; @@ -47,12 +48,11 @@ import resolver from './resolver'; * * app.listen(PORT); */ -export default data => { - return [ - bodyParser.json(), - graphqlExpress({ - schema: getSchemaFromData(data), - rootValue: resolver(data), +export default data => + graphqlHTTP({ + schema: makeExecutableSchema({ + typeDefs: printSchema(getSchemaFromData(data)), + resolvers: resolver(data), }), - ]; -}; + graphiql: true, + }); diff --git a/src/resolver/all.js b/src/resolver/all.js index 285b148..cc3bf0d 100644 --- a/src/resolver/all.js +++ b/src/resolver/all.js @@ -1,10 +1,7 @@ -export default entityData => ({ - sortField, - sortOrder = 'asc', - page, - perPage = 25, - filter = '{}', -}) => { +export default entityData => ( + _, + { sortField, sortOrder = 'asc', page, perPage = 25, filter = '{}' }, +) => { const filters = JSON.parse(filter); let items = [...entityData]; diff --git a/src/resolver/create.js b/src/resolver/create.js index 1d76bf9..352ba17 100644 --- a/src/resolver/create.js +++ b/src/resolver/create.js @@ -1,4 +1,4 @@ -export default entityData => entity => { +export default entityData => (_, entity) => { const newEntity = { id: entityData[entityData.length - 1].id + 1, ...entity, diff --git a/src/resolver/index.js b/src/resolver/index.js index e418256..6d3aa25 100644 --- a/src/resolver/index.js +++ b/src/resolver/index.js @@ -8,24 +8,36 @@ import update from './update'; import remove from './remove'; import { getTypeNamesFromData } from '../introspection/getTypesFromData'; -const getResolversForEntity = (entityName, data) => { - let entityData = data[underscore(pluralize(entityName))]; +const getData = (entityName, data) => data[underscore(pluralize(entityName))]; +const getQueryResolvers = (entityName, data) => ({ + [`all${pluralize(entityName)}`]: all(data), + [`_all${pluralize(entityName)}Meta`]: meta(data), + [entityName]: single(data), +}); + +const getMutationResolvers = (entityName, data) => ({ + [`create${entityName}`]: create(data), + [`update${entityName}`]: update(data), + [`remove${entityName}`]: remove(data), +}); + +export default data => { + const typeNames = getTypeNamesFromData(data); return { - [`all${pluralize(entityName)}`]: all(entityData), - [`_all${pluralize(entityName)}Meta`]: meta(entityData), - [entityName]: single(entityData), - [`create${entityName}`]: create(entityData), - [`update${entityName}`]: update(entityData), - [`remove${entityName}`]: remove(entityData), + Query: typeNames.reduce( + (resolvers, entityName) => ({ + ...resolvers, + ...getQueryResolvers(entityName, getData(entityName, data)), + }), + {}, + ), + Mutation: typeNames.reduce( + (resolvers, entityName) => ({ + ...resolvers, + ...getMutationResolvers(entityName, getData(entityName, data)), + }), + {}, + ), }; }; - -export default data => - getTypeNamesFromData(data).reduce( - (resolvers, entityName) => ({ - ...resolvers, - ...getResolversForEntity(entityName, data), - }), - {}, - ); diff --git a/src/resolver/meta.js b/src/resolver/meta.js index b3179ea..177fc1f 100644 --- a/src/resolver/meta.js +++ b/src/resolver/meta.js @@ -1,4 +1,4 @@ -export default entityData => ({ page, perPage = 25, filter = '{}' }) => { +export default entityData => (_, { page, perPage = 25, filter = '{}' }) => { const filters = JSON.parse(filter); let items = [...entityData]; diff --git a/src/resolver/remove.js b/src/resolver/remove.js index 5f587c3..efe0835 100644 --- a/src/resolver/remove.js +++ b/src/resolver/remove.js @@ -1,4 +1,4 @@ -export default entityData => ({ id }) => { +export default entityData => (_, { id }) => { const parsedId = parseInt(id, 10); // FIXME fails for non-integer ids const indexOfEntity = entityData.findIndex(e => e.id === parsedId); const removedEntity = entityData[indexOfEntity]; diff --git a/src/resolver/single.js b/src/resolver/single.js index cab4b3f..925f833 100644 --- a/src/resolver/single.js +++ b/src/resolver/single.js @@ -1 +1 @@ -export default entityData => ({ id }) => entityData.find(d => d.id == id); +export default entityData => (_, { id }) => entityData.find(d => d.id == id); diff --git a/src/resolver/update.js b/src/resolver/update.js index d9fdc61..9afbfb1 100644 --- a/src/resolver/update.js +++ b/src/resolver/update.js @@ -1,4 +1,4 @@ -export default entityData => ({ id, ...updates }) => { +export default entityData => (_, { id, ...updates }) => { const parsedId = parseInt(id, 10); // FIXME fails for non-integer ids const indexOfEntity = entityData.findIndex(e => e.id === parsedId); diff --git a/yarn.lock b/yarn.lock index e30dd77..5887345 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6,22 +6,9 @@ version "2.0.40" resolved "https://registry.yarnpkg.com/@types/async/-/async-2.0.40.tgz#ac02de68e66c004a61b7cb16df8b1db3a254cca9" -"@types/express-serve-static-core@*": - version "4.0.49" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.0.49.tgz#3438d68d26e39db934ba941f18e3862a1beeb722" - dependencies: - "@types/node" "*" - -"@types/express@^4.0.35": - version "4.0.36" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.0.36.tgz#14eb47de7ecb10319f0a2fb1cf971aa8680758c2" - dependencies: - "@types/express-serve-static-core" "*" - "@types/serve-static" "*" - -"@types/graphql@^0.9.0", "@types/graphql@^0.9.1": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.9.3.tgz#4a2a888e110c796eb7671bf8f9ecef229ad67749" +"@types/graphql@^0.9.0": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.9.4.tgz#cdeb6bcbef9b6c584374b81aa7f48ecf3da404fa" "@types/isomorphic-fetch@0.0.34": version "0.0.34" @@ -31,21 +18,6 @@ version "19.2.4" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-19.2.4.tgz#543651712535962b7dc615e18e4a381fc2687442" -"@types/mime@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.1.tgz#2cf42972d0931c1060c7d5fa6627fce6bd876f2f" - -"@types/node@*": - version "8.0.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.9.tgz#19f44c3b6cb8a70d261d366f73650e3e3891ab2d" - -"@types/serve-static@*": - version "1.7.31" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.7.31.tgz#15456de8d98d6b4cff31be6c6af7492ae63f521a" - dependencies: - "@types/express-serve-static-core" "*" - "@types/mime" "*" - abab@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" @@ -60,7 +32,7 @@ abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1: dependencies: xtend "~3.0.0" -accepts@~1.3.3: +accepts@^1.3.0, accepts@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" dependencies: @@ -113,8 +85,8 @@ ajv@^4.7.0, ajv@^4.9.1: json-stable-stringify "^1.0.1" ajv@^5.1.5, ajv@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.1.tgz#dcd03045175883ba1b636e5ae9ec3df9ab85323a" + version "5.2.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" @@ -154,10 +126,10 @@ ansi-styles@^2.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" ansi-styles@^3.0.0, ansi-styles@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.1.0.tgz#09c202d5c917ec23188caa5c9cb9179cd9547750" + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" dependencies: - color-convert "^1.0.0" + color-convert "^1.9.0" anymatch@^1.3.0: version "1.3.0" @@ -1014,12 +986,12 @@ big.js@^3.1.3: resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" binary-extensions@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + version "1.9.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.9.0.tgz#66506c16ce6f4d6928a5b3cd6a33ca41e941e37b" bindings@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" + version "1.3.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" bl@~0.8.1: version "0.8.2" @@ -1037,21 +1009,6 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.7" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.7.tgz#ddb048e50d9482790094c13eb3fcfc833ce7ab46" -body-parser@~1.17.2: - version "1.17.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.2.tgz#f8892abc8f9e627d42aedafbca66bf5ab99104ee" - dependencies: - bytes "2.4.0" - content-type "~1.0.2" - debug "2.6.7" - depd "~1.1.0" - http-errors "~1.6.1" - iconv-lite "0.4.15" - on-finished "~2.3.0" - qs "6.4.0" - raw-body "~2.2.0" - type-is "~1.6.15" - boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -1233,7 +1190,7 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -chokidar@^1.4.3, chokidar@^1.6.1, chokidar@^1.7.0: +chokidar@^1.6.1, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -1260,8 +1217,8 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: safe-buffer "^5.0.1" circular-json@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" cli-cursor@^1.0.2: version "1.0.2" @@ -1318,15 +1275,15 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" -color-convert@^1.0.0: +color-convert@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" dependencies: color-name "^1.1.1" color-name@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" @@ -1380,7 +1337,7 @@ content-type-parser@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" -content-type@~1.0.2: +content-type@^1.0.2, content-type@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" @@ -1459,8 +1416,8 @@ cryptiles@2.x.x: boom "2.x.x" crypto-browserify@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" + version "3.11.1" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -1649,13 +1606,13 @@ encodeurl@~1.0.1: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" enhanced-resolve@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3" + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" object-assign "^4.0.1" - tapable "^0.2.5" + tapable "^0.2.7" errno@^0.1.1, errno@^0.1.3, errno@^0.1.4, errno@~0.1.1: version "0.1.4" @@ -1943,6 +1900,16 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" +express-graphql@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.6.6.tgz#fdf5c7b5af600b8ef920e4095e03dfc784f9094d" + dependencies: + accepts "^1.3.0" + content-type "^1.0.2" + http-errors "^1.3.0" + prettier "^1.3.1" + raw-body "^2.1.0" + express@~4.15.3: version "4.15.3" resolved "https://registry.yarnpkg.com/express/-/express-4.15.3.tgz#bab65d0f03aa80c358408972fc700f916944b662" @@ -2263,26 +2230,6 @@ graphql-anywhere@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/graphql-anywhere/-/graphql-anywhere-3.1.0.tgz#3ea0d8e8646b5cee68035016a9a7557c15c21e96" -graphql-server-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/graphql-server-core/-/graphql-server-core-1.0.0.tgz#25d92b6279a81263f0714136636a54910c1fafe0" - optionalDependencies: - "@types/graphql" "^0.9.0" - -graphql-server-express@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/graphql-server-express/-/graphql-server-express-1.0.0.tgz#038b73552255f6180c51a73bee8d7f9d68c5e201" - dependencies: - graphql-server-core "^1.0.0" - graphql-server-module-graphiql "^1.0.0" - optionalDependencies: - "@types/express" "^4.0.35" - "@types/graphql" "^0.9.1" - -graphql-server-module-graphiql@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/graphql-server-module-graphiql/-/graphql-server-module-graphiql-1.0.0.tgz#1b302481423f83b3c0f43cb30bfdc30bfe3d0a82" - graphql-tag@^2.0.0, graphql-tag@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.0.0.tgz#f3efe3b4d64f33bfe8479ae06a461c9d72f2a6fe" @@ -2297,13 +2244,13 @@ graphql-tools@^1.0.0, graphql-tools@~1.1.0: optionalDependencies: "@types/graphql" "^0.9.0" -graphql@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.10.3.tgz#c313afd5518e673351bee18fb63e2a0e487407ab" +graphql@^0.10.0, graphql@~0.10.3: + version "0.10.5" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.10.5.tgz#c9be17ca2bdfdbd134077ffd9bbaa48b8becd298" dependencies: iterall "^1.1.0" -graphql@^0.9.3, graphql@~0.9.6: +graphql@^0.9.3: version "0.9.6" resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.9.6.tgz#514421e9d225c29dfc8fd305459abae58815ef2c" dependencies: @@ -2409,7 +2356,7 @@ html-encoding-sniffer@^1.0.1: dependencies: whatwg-encoding "^1.0.1" -http-errors@~1.6.1: +http-errors@^1.3.0, http-errors@~1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257" dependencies: @@ -2474,8 +2421,8 @@ indent-string@^2.1.0: repeating "^2.0.0" indent-string@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" indexof@0.0.1, indexof@~0.0.1: version "0.0.1" @@ -2505,8 +2452,8 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" inquirer@^3.0.6: - version "3.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.0.tgz#45b44c2160c729d7578c54060b3eed94487bb42b" + version "3.2.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.1.tgz#06ceb0f540f45ca548c17d6840959878265fa175" dependencies: ansi-escapes "^2.0.0" chalk "^2.0.0" @@ -2537,9 +2484,9 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ipaddr.js@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" +ipaddr.js@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" is-arrayish@^0.2.1: version "0.2.1" @@ -2704,14 +2651,14 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" istanbul-api@^1.1.1: - version "1.1.10" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.10.tgz#f27e5e7125c8de13f6a80661af78f512e5439b2b" + version "1.1.11" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.11.tgz#fcc0b461e2b3bda71e305155138238768257d9de" dependencies: async "^2.1.4" fileset "^2.0.2" istanbul-lib-coverage "^1.1.1" istanbul-lib-hook "^1.0.7" - istanbul-lib-instrument "^1.7.3" + istanbul-lib-instrument "^1.7.4" istanbul-lib-report "^1.1.1" istanbul-lib-source-maps "^1.2.1" istanbul-reports "^1.1.1" @@ -2729,9 +2676,9 @@ istanbul-lib-hook@^1.0.7: dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.3.tgz#925b239163eabdd68cc4048f52c2fa4f899ecfa7" +istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.4.tgz#e9fd920e4767f3d19edc765e2d6b3f5ccbd0eea8" dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" @@ -2853,8 +2800,8 @@ jest-environment-node@^20.0.3: jest-util "^20.0.3" jest-haste-map@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.4.tgz#653eb55c889ce3c021f7b94693f20a4159badf03" + version "20.0.5" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.5.tgz#abad74efb1a005974a7b6517e11010709cab9112" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" @@ -2997,8 +2944,8 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" jschardet@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.4.2.tgz#2aa107f142af4121d145659d44f50830961e699a" + version "1.5.0" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.0.tgz#a61f310306a5a71188e1b1acd08add3cfbb08b1e" jsdom@^9.12.0: version "9.12.0" @@ -3033,8 +2980,8 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" json-loader@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" json-schema-traverse@^0.3.0: version "0.3.1" @@ -3399,15 +3346,15 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" +mime-db@~1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: - version "2.1.15" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + version "2.1.16" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: - mime-db "~1.27.0" + mime-db "~1.29.0" mime@1.3.4: version "1.3.4" @@ -3851,9 +3798,9 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier@~1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.2.tgz#7ea0751da27b93bfb6cecfcec509994f52d83bb3" +prettier@^1.3.1, prettier@~1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.3.tgz#59dadc683345ec6b88f88b94ed4ae7e1da394bfe" pretty-format@^20.0.3: version "20.0.3" @@ -3883,11 +3830,11 @@ progress@^2.0.0: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" proxy-addr@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" + version "1.1.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" dependencies: forwarded "~0.1.0" - ipaddr.js "1.3.0" + ipaddr.js "1.4.0" prr@~0.0.0: version "0.0.0" @@ -3944,7 +3891,7 @@ range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -raw-body@~2.2.0: +raw-body@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" dependencies: @@ -4022,8 +3969,8 @@ readdirp@^2.0.0: set-immediate-shim "^1.0.1" redux@^3.4.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.1.tgz#bfc535c757d3849562ead0af18ac52122cd7268e" + version "3.7.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" dependencies: lodash "^4.2.1" lodash-es "^4.2.1" @@ -4312,8 +4259,8 @@ sax@^1.2.1: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" "semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" semver@~2.3.1: version "2.3.2" @@ -4506,8 +4453,8 @@ string-width@^1.0.1, string-width@^1.0.2: strip-ansi "^3.0.0" string-width@^2.0.0, string-width@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.0.tgz#030664561fc146c9423ec7d978fe2457437fe6d0" + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" @@ -4567,8 +4514,8 @@ supports-color@^3.1.0, supports-color@^3.1.2: has-flag "^1.0.0" supports-color@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037" + version "4.2.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" dependencies: has-flag "^2.0.0" @@ -4591,9 +4538,9 @@ table@^4.0.1: slice-ansi "0.0.4" string-width "^2.0.0" -tapable@^0.2.5, tapable@~0.2.5: - version "0.2.6" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" +tapable@^0.2.7, tapable@~0.2.5: + version "0.2.7" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.7.tgz#e46c0daacbb2b8a98b9b0cea0f4052105817ed5c" tar-pack@^3.4.0: version "3.4.0" @@ -4817,11 +4764,11 @@ watch@~0.10.0: resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" watchpack@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" dependencies: async "^2.1.2" - chokidar "^1.4.3" + chokidar "^1.7.0" graceful-fs "^4.1.2" weak@^1.0.1: From cdc750fa71a2ae4b76b28dcd059bd9569211a8ee Mon Sep 17 00:00:00 2001 From: Francois Zaninotto Date: Wed, 26 Jul 2017 15:30:00 +0200 Subject: [PATCH 2/2] Reorganize resolvers --- src/resolver/{ => Mutation}/create.js | 0 src/resolver/{ => Mutation}/remove.js | 0 src/resolver/{ => Mutation}/update.js | 0 src/resolver/{ => Query}/all.js | 0 src/resolver/{ => Query}/meta.js | 0 src/resolver/{ => Query}/single.js | 0 src/resolver/index.js | 12 ++++++------ 7 files changed, 6 insertions(+), 6 deletions(-) rename src/resolver/{ => Mutation}/create.js (100%) rename src/resolver/{ => Mutation}/remove.js (100%) rename src/resolver/{ => Mutation}/update.js (100%) rename src/resolver/{ => Query}/all.js (100%) rename src/resolver/{ => Query}/meta.js (100%) rename src/resolver/{ => Query}/single.js (100%) diff --git a/src/resolver/create.js b/src/resolver/Mutation/create.js similarity index 100% rename from src/resolver/create.js rename to src/resolver/Mutation/create.js diff --git a/src/resolver/remove.js b/src/resolver/Mutation/remove.js similarity index 100% rename from src/resolver/remove.js rename to src/resolver/Mutation/remove.js diff --git a/src/resolver/update.js b/src/resolver/Mutation/update.js similarity index 100% rename from src/resolver/update.js rename to src/resolver/Mutation/update.js diff --git a/src/resolver/all.js b/src/resolver/Query/all.js similarity index 100% rename from src/resolver/all.js rename to src/resolver/Query/all.js diff --git a/src/resolver/meta.js b/src/resolver/Query/meta.js similarity index 100% rename from src/resolver/meta.js rename to src/resolver/Query/meta.js diff --git a/src/resolver/single.js b/src/resolver/Query/single.js similarity index 100% rename from src/resolver/single.js rename to src/resolver/Query/single.js diff --git a/src/resolver/index.js b/src/resolver/index.js index 6d3aa25..93fb5cc 100644 --- a/src/resolver/index.js +++ b/src/resolver/index.js @@ -1,11 +1,11 @@ import { pluralize, underscore } from 'inflection'; -import all from './all'; -import meta from './meta'; -import single from './single'; -import create from './create'; -import update from './update'; -import remove from './remove'; +import all from './Query/all'; +import meta from './Query/meta'; +import single from './Query/single'; +import create from './Mutation/create'; +import update from './Mutation/update'; +import remove from './Mutation/remove'; import { getTypeNamesFromData } from '../introspection/getTypesFromData'; const getData = (entityName, data) => data[underscore(pluralize(entityName))];