Skip to content
This repository was archived by the owner on Dec 26, 2023. It is now read-only.

Commit 2963cf8

Browse files
committed
Add payload type to delete mutation
1 parent ee0685d commit 2963cf8

File tree

5 files changed

+173
-20
lines changed

5 files changed

+173
-20
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
"dependencies": {
2626
"axios": "^0.18.0",
2727
"babel-runtime": "^6.26.0",
28+
"change-case": "^3.0.2",
2829
"graphql-list-fields": "^2.0.1",
2930
"graphql-type-json": "^0.2.0",
3031
"lodash": "^4.17.5",
31-
"parse": "^1.11.0",
32-
"to-camel-case": "^1.0.0"
32+
"parse": "^1.11.0"
3333
},
3434
"peerDependencies": {
3535
"graphql": "^0.13.1"

src/generateGraphQLSchema.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { flow, reduce, mapValues, mapKeys } from 'lodash/fp';
22
import { GraphQLSchema, GraphQLObjectType } from 'graphql';
3-
import camelCase from 'to-camel-case';
3+
import { camel } from 'change-case';
44
import typeForClass from './types/typeForClass';
55
import dependencyHelper from './utils/dependencyHelper';
66
import baseMapping from './types/baseMapping';
@@ -66,7 +66,7 @@ export default function generateGraphqlSchema(parseSchema) {
6666
const query = new GraphQLObjectType({
6767
name: 'Query',
6868
fields: mapKeys(
69-
flow(mapClassName, camelCase),
69+
flow(mapClassName, camel),
7070
queryFields,
7171
),
7272
});

src/mutation/delete/field.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import Parse from 'parse/node';
22
import { GraphQLNonNull, GraphQLString } from 'graphql';
3+
import payloadType from './payloadType';
34

45
export default ({ className, displayName }, Type) => ({
5-
type: Type,
6+
type: payloadType({ className, displayName }, Type),
67
description: `Delete a ${displayName}. The deleted object is returned.`,
78
args: {
89
objectId: {
@@ -14,4 +15,4 @@ export default ({ className, displayName }, Type) => ({
1415
const object = new Parse.Object(className, { objectId });
1516
return object.destroy({ sessionToken });
1617
}
17-
});
18+
});

src/mutation/delete/payloadType.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { GraphQLObjectType } from 'graphql'
2+
import { camelCase } from 'change-case'
3+
4+
export default ({ className, displayName }, Type) => new GraphQLObjectType({
5+
name: `Delete${displayName}Payload`,
6+
fields: {
7+
[camelCase(displayName)]: {
8+
type: Type,
9+
description: `The deleted ${displayName}`,
10+
resolve(object) {
11+
return object;
12+
},
13+
},
14+
},
15+
});

yarn.lock

Lines changed: 151 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,14 @@ browserslist@^2.1.2:
670670
caniuse-lite "^1.0.30000792"
671671
electron-to-chromium "^1.3.30"
672672

673+
camel-case@^3.0.0:
674+
version "3.0.0"
675+
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
676+
integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
677+
dependencies:
678+
no-case "^2.2.0"
679+
upper-case "^1.1.1"
680+
673681
caniuse-lite@^1.0.30000792:
674682
version "1.0.30000810"
675683
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz#47585fffce0e9f3593a6feea4673b945424351d9"
@@ -688,6 +696,30 @@ chalk@^1.1.3:
688696
strip-ansi "^3.0.0"
689697
supports-color "^2.0.0"
690698

699+
change-case@^3.0.2:
700+
version "3.0.2"
701+
resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037"
702+
integrity sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==
703+
dependencies:
704+
camel-case "^3.0.0"
705+
constant-case "^2.0.0"
706+
dot-case "^2.1.0"
707+
header-case "^1.0.0"
708+
is-lower-case "^1.1.0"
709+
is-upper-case "^1.1.0"
710+
lower-case "^1.1.1"
711+
lower-case-first "^1.0.0"
712+
no-case "^2.3.2"
713+
param-case "^2.1.0"
714+
pascal-case "^2.0.0"
715+
path-case "^2.1.0"
716+
sentence-case "^2.1.0"
717+
snake-case "^2.1.0"
718+
swap-case "^1.1.0"
719+
title-case "^2.1.0"
720+
upper-case "^1.1.1"
721+
upper-case-first "^1.1.0"
722+
691723
chokidar@^1.6.1:
692724
version "1.7.0"
693725
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
@@ -729,6 +761,14 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
729761
version "1.1.0"
730762
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
731763

764+
constant-case@^2.0.0:
765+
version "2.0.0"
766+
resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46"
767+
integrity sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=
768+
dependencies:
769+
snake-case "^2.1.0"
770+
upper-case "^1.1.1"
771+
732772
convert-source-map@^1.5.0:
733773
version "1.5.1"
734774
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
@@ -787,6 +827,13 @@ detect-libc@^1.0.2:
787827
version "1.0.3"
788828
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
789829

830+
dot-case@^2.1.0:
831+
version "2.1.1"
832+
resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee"
833+
integrity sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=
834+
dependencies:
835+
no-case "^2.2.0"
836+
790837
ecc-jsbn@~0.1.1:
791838
version "0.1.1"
792839
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
@@ -1004,6 +1051,14 @@ [email protected], hawk@~3.1.3:
10041051
hoek "2.x.x"
10051052
sntp "1.x.x"
10061053

1054+
header-case@^1.0.0:
1055+
version "1.0.1"
1056+
resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d"
1057+
integrity sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=
1058+
dependencies:
1059+
no-case "^2.2.0"
1060+
upper-case "^1.1.3"
1061+
10071062
10081063
version "2.16.3"
10091064
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
@@ -1090,6 +1145,13 @@ is-glob@^2.0.0, is-glob@^2.0.1:
10901145
dependencies:
10911146
is-extglob "^1.0.0"
10921147

1148+
is-lower-case@^1.1.0:
1149+
version "1.1.3"
1150+
resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393"
1151+
integrity sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=
1152+
dependencies:
1153+
lower-case "^1.1.0"
1154+
10931155
is-number@^2.1.0:
10941156
version "2.1.0"
10951157
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -1114,6 +1176,13 @@ is-typedarray@~1.0.0:
11141176
version "1.0.0"
11151177
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
11161178

1179+
is-upper-case@^1.1.0:
1180+
version "1.1.2"
1181+
resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f"
1182+
integrity sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=
1183+
dependencies:
1184+
upper-case "^1.1.0"
1185+
11171186
[email protected], isarray@~1.0.0:
11181187
version "1.0.0"
11191188
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -1201,6 +1270,18 @@ loose-envify@^1.0.0:
12011270
dependencies:
12021271
js-tokens "^3.0.0"
12031272

1273+
lower-case-first@^1.0.0:
1274+
version "1.0.2"
1275+
resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1"
1276+
integrity sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=
1277+
dependencies:
1278+
lower-case "^1.1.2"
1279+
1280+
lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2:
1281+
version "1.1.4"
1282+
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
1283+
integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
1284+
12041285
micromatch@^2.1.5:
12051286
version "2.3.11"
12061287
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
@@ -1257,6 +1338,13 @@ nan@^2.3.0:
12571338
version "2.9.2"
12581339
resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866"
12591340

1341+
no-case@^2.2.0, no-case@^2.3.2:
1342+
version "2.3.2"
1343+
resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
1344+
integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
1345+
dependencies:
1346+
lower-case "^1.1.1"
1347+
12601348
node-pre-gyp@^0.6.39:
12611349
version "0.6.39"
12621350
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
@@ -1343,6 +1431,13 @@ output-file-sync@^1.1.2:
13431431
mkdirp "^0.5.1"
13441432
object-assign "^4.1.0"
13451433

1434+
param-case@^2.1.0:
1435+
version "2.1.1"
1436+
resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
1437+
integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
1438+
dependencies:
1439+
no-case "^2.2.0"
1440+
13461441
parse-glob@^3.0.4:
13471442
version "3.0.4"
13481443
resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
@@ -1360,6 +1455,21 @@ parse@^1.11.0:
13601455
ws "^3.3.1"
13611456
xmlhttprequest "^1.7.0"
13621457

1458+
pascal-case@^2.0.0:
1459+
version "2.0.1"
1460+
resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e"
1461+
integrity sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=
1462+
dependencies:
1463+
camel-case "^3.0.0"
1464+
upper-case-first "^1.1.0"
1465+
1466+
path-case@^2.1.0:
1467+
version "2.1.1"
1468+
resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5"
1469+
integrity sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=
1470+
dependencies:
1471+
no-case "^2.2.0"
1472+
13631473
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
13641474
version "1.0.1"
13651475
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -1528,6 +1638,14 @@ semver@^5.3.0:
15281638
version "5.5.0"
15291639
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
15301640

1641+
sentence-case@^2.1.0:
1642+
version "2.1.1"
1643+
resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4"
1644+
integrity sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=
1645+
dependencies:
1646+
no-case "^2.2.0"
1647+
upper-case-first "^1.1.2"
1648+
15311649
set-blocking@~2.0.0:
15321650
version "2.0.0"
15331651
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -1544,6 +1662,13 @@ slash@^1.0.0:
15441662
version "1.0.0"
15451663
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
15461664

1665+
snake-case@^2.1.0:
1666+
version "2.1.0"
1667+
resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f"
1668+
integrity sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=
1669+
dependencies:
1670+
no-case "^2.2.0"
1671+
15471672
15481673
version "1.0.9"
15491674
resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
@@ -1606,6 +1731,14 @@ supports-color@^2.0.0:
16061731
version "2.0.0"
16071732
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
16081733

1734+
swap-case@^1.1.0:
1735+
version "1.1.2"
1736+
resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3"
1737+
integrity sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=
1738+
dependencies:
1739+
lower-case "^1.1.1"
1740+
upper-case "^1.1.1"
1741+
16091742
tar-pack@^3.4.0:
16101743
version "3.4.1"
16111744
resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
@@ -1627,26 +1760,18 @@ tar@^2.2.1:
16271760
fstream "^1.0.2"
16281761
inherits "2"
16291762

1630-
to-camel-case@^1.0.0:
1631-
version "1.0.0"
1632-
resolved "https://registry.yarnpkg.com/to-camel-case/-/to-camel-case-1.0.0.tgz#1a56054b2f9d696298ce66a60897322b6f423e46"
1763+
title-case@^2.1.0:
1764+
version "2.1.1"
1765+
resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa"
1766+
integrity sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=
16331767
dependencies:
1634-
to-space-case "^1.0.0"
1768+
no-case "^2.2.0"
1769+
upper-case "^1.0.3"
16351770

16361771
to-fast-properties@^1.0.3:
16371772
version "1.0.3"
16381773
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
16391774

1640-
to-no-case@^1.0.0:
1641-
version "1.0.2"
1642-
resolved "https://registry.yarnpkg.com/to-no-case/-/to-no-case-1.0.2.tgz#c722907164ef6b178132c8e69930212d1b4aa16a"
1643-
1644-
to-space-case@^1.0.0:
1645-
version "1.0.0"
1646-
resolved "https://registry.yarnpkg.com/to-space-case/-/to-space-case-1.0.0.tgz#b052daafb1b2b29dc770cea0163e5ec0ebc9fc17"
1647-
dependencies:
1648-
to-no-case "^1.0.0"
1649-
16501775
tough-cookie@~2.3.0:
16511776
version "2.3.4"
16521777
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
@@ -1675,6 +1800,18 @@ ultron@~1.1.0:
16751800
version "1.1.1"
16761801
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
16771802

1803+
upper-case-first@^1.1.0, upper-case-first@^1.1.2:
1804+
version "1.1.2"
1805+
resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115"
1806+
integrity sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=
1807+
dependencies:
1808+
upper-case "^1.1.1"
1809+
1810+
upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3:
1811+
version "1.1.3"
1812+
resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
1813+
integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
1814+
16781815
user-home@^1.1.1:
16791816
version "1.1.1"
16801817
resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"

0 commit comments

Comments
 (0)