Commit Graph

855 Commits

Author SHA1 Message Date
Antonio Davi Macedo Coelho de Castro
71d92aed8d GraphQL Custom Schema (#5821)
This PR empowers the Parse GraphQL API with custom user-defined schema. The developers can now write their own types, queries, and mutations, which will merged with the ones that are automatically generated. The new types are resolved by the application's cloud code functions.

Therefore, regarding https://github.com/parse-community/parse-server/issues/5777, this PR closes the cloud functions needs and also addresses the graphql customization topic. In my view, I think that this PR, together with https://github.com/parse-community/parse-server/pull/5782 and https://github.com/parse-community/parse-server/pull/5818, when merged, closes the issue.

How it works:

1. When initializing ParseGraphQLServer, now the developer can pass a custom schema that will be merged to the auto-generated one:
```
      parseGraphQLServer = new ParseGraphQLServer(parseServer, {
        graphQLPath: '/graphql',
        graphQLCustomTypeDefs: gql`
          extend type Query {
            custom: Custom @namespace
          }
           type Custom {
            hello: String @resolve
            hello2: String @resolve(to: "hello")
            userEcho(user: _UserFields!): _UserClass! @resolve
          }
        `,
      });
```

Note:
- This PR includes a @namespace directive that can be used to the top level field of the nested queries and mutations (it basically just returns an empty object);
- This PR includes a @resolve directive that can be used to notify the Parse GraphQL Server to resolve that field using a cloud code function. The `to` argument specifies the function name. If the `to` argument is not passed, the Parse GraphQL Server will look for a function with the same name of the field;
- This PR allows creating custom types using the auto-generated ones as in `userEcho(user: _UserFields!): _UserClass! @resolve`;
- This PR allows to extend the auto-generated types, as in `extend type Query { ... }`.

2. Once the schema was set, you just need to write regular cloud code functions:
```
      Parse.Cloud.define('hello', async () => {
        return 'Hello world!';
      });

      Parse.Cloud.define('userEcho', async req => {
        return req.params.user;
      });
```

3. Now you are ready to play with your new custom api:
```
query {
  custom {
    hello
    hello2
    userEcho(user: { username: "somefolk" }) {
      username
    }
  }
}
```
should return
```
{
  "data": {
    "custom": {
      "hello": "Hello world!",
      "hello2": "Hello world!",
      "userEcho": {
        "username": "somefolk"
      }
    }
  }
}
```
2019-07-18 16:43:49 -03:00
greenkeeper[bot]
6be15331a6 Update eslint-plugin-flowtype to the latest version 🚀 (#5823)
* chore(package): update eslint-plugin-flowtype to version 3.12.0

* chore(package): update lockfile package-lock.json
2019-07-18 17:14:07 +00:00
greenkeeper[bot]
9eec0f1b78 Update babel7 to the latest version 🚀 (#5820)
* chore(package): update @babel/cli to version 7.5.5

* chore(package): update @babel/core to version 7.5.5

* chore(package): update @babel/plugin-proposal-object-rest-spread to version 7.5.5

* chore(package): update @babel/preset-env to version 7.5.5

* chore(package): update lockfile package-lock.json
2019-07-17 23:40:20 +00:00
greenkeeper[bot]
1b5c045706 Update apollo-server to the latest version 🚀 (#5817)
* fix(package): update apollo-server-express to version 2.7.0

* chore(package): update lockfile package-lock.json
2019-07-16 14:18:14 +00:00
greenkeeper[bot]
82e24cb18d Update @parse/s3-files-adapter to the latest version 🚀 (#5816)
* fix(package): update @parse/s3-files-adapter to version 1.2.3

* chore(package): update lockfile package-lock.json
2019-07-15 18:07:19 +00:00
greenkeeper[bot]
cdc6eee295 Update jsdoc to the latest version 🚀 (#5813)
* chore(package): update jsdoc to version 3.6.3

* chore(package): update lockfile package-lock.json
2019-07-14 18:32:19 +00:00
greenkeeper[bot]
1c62ab6f49 Update winston-daily-rotate-file to the latest version 🚀 (#5808)
* fix(package): update winston-daily-rotate-file to version 3.10.0

* chore(package): update lockfile package-lock.json
2019-07-12 15:52:20 +00:00
greenkeeper[bot]
3e888249cc Update parse to the latest version 🚀 (#5806)
* fix(package): update parse to version 2.5.1

* chore(package): update lockfile package-lock.json
2019-07-12 00:42:32 +00:00
greenkeeper[bot]
527662f336 Update pg-promise to the latest version 🚀 (#5805)
* fix(package): update pg-promise to version 8.7.4

* chore(package): update lockfile package-lock.json
2019-07-11 22:46:36 +00:00
greenkeeper[bot]
0dc7152681 Update apollo-server to the latest version 🚀 (#5804)
* fix(package): update apollo-server-express to version 2.6.9

* chore(package): update lockfile package-lock.json
2019-07-11 19:02:20 +00:00
Arthur Cinader
26943de778 Prepare 3.6.0 Release (#5792)
* Re-apply "Prepare for 3.6.0 Release""

This reverts commit 08dbafe49a.

* fix link formatting

* revert mongodb-runner upgrade.

* Update CHANGELOG.md

* Fix formatting
2019-07-11 09:22:36 -04:00
dependabot-preview[bot]
2afaf00d1f Bump lodash from 4.17.13 to 4.17.14 (#5803)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.13 to 4.17.14.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.13...4.17.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-11 11:22:24 +00:00
dependabot-preview[bot]
b5b718196b Bump lint-staged from 9.1.0 to 9.2.0 (#5802)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 9.1.0 to 9.2.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v9.1.0...v9.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-11 11:13:41 +00:00
Arthur Cinader
815b7c6e05 Too much output! (#5795)
Reducing the spew.
2019-07-10 11:56:04 -04:00
Arthur Cinader
08dbafe49a Revert "Prepare for 3.6.0 Release"
This reverts commit 8c1124e3c4.
2019-07-10 10:21:47 -04:00
Arthur Cinader
8c1124e3c4 Prepare for 3.6.0 Release
also run 'npm audit fix' to address some dependency vulnerabilities
2019-07-10 10:18:29 -04:00
greenkeeper[bot]
050dd19e80 Update apollo-upload-client to the latest version 🚀 (#5791)
* chore(package): update apollo-upload-client to version 11.0.0

* chore(package): update lockfile package-lock.json
2019-07-10 01:12:46 +00:00
greenkeeper[bot]
ed72e58ea6 Update apollo-server to the latest version 🚀 (#5789)
* fix(package): update apollo-server-express to version 2.6.8

* chore(package): update lockfile package-lock.json
2019-07-10 00:05:32 +00:00
greenkeeper[bot]
bf74b7445e Update lodash to the latest version 🚀 (#5788)
* fix(package): update lodash to version 4.17.13

* chore(package): update lockfile package-lock.json
2019-07-09 23:22:57 +00:00
greenkeeper[bot]
60a9a4d79c Update lodash to the latest version 🚀 (#5787)
* fix(package): update lodash to version 4.17.12

* chore(package): update lockfile package-lock.json
2019-07-09 22:45:40 +00:00
greenkeeper[bot]
71ddeed2e7 Update babel7 to the latest version 🚀 (#5786)
* chore(package): update @babel/core to version 7.5.4

* chore(package): update @babel/plugin-proposal-object-rest-spread to version 7.5.4

* chore(package): update @babel/preset-env to version 7.5.4

* chore(package): update lockfile package-lock.json
2019-07-09 21:29:49 +00:00
greenkeeper[bot]
72dbc01712 Update babel7 to the latest version 🚀 (#5784)
* chore(package): update @babel/plugin-proposal-object-rest-spread to version 7.5.3

* chore(package): update @babel/preset-env to version 7.5.3

* chore(package): update lockfile package-lock.json
2019-07-09 18:25:27 +00:00
greenkeeper[bot]
04a196695a Update ws to the latest version 🚀 (#5781)
* fix(package): update ws to version 7.1.0

* chore(package): update lockfile package-lock.json
2019-07-08 23:18:46 -07:00
greenkeeper[bot]
e471bb960d Update babel7 to the latest version 🚀 (#5783)
* chore(package): update @babel/plugin-proposal-object-rest-spread to version 7.5.2

* chore(package): update @babel/preset-env to version 7.5.2

* chore(package): update lockfile package-lock.json
2019-07-08 23:05:57 +00:00
greenkeeper[bot]
f57646d397 Update lint-staged to the latest version 🚀 (#5776)
* chore(package): update lint-staged to version 9.1.0

* chore(package): update lockfile package-lock.json
2019-07-06 12:16:42 +00:00
greenkeeper[bot]
cd350ee1d1 Update babel7 to the latest version 🚀 (#5775)
* chore(package): update @babel/plugin-proposal-object-rest-spread to version 7.5.1

* chore(package): update lockfile package-lock.json
2019-07-06 09:41:24 +00:00
dependabot-preview[bot]
180ec0090d Bump @babel/plugin-proposal-object-rest-spread from 7.4.4 to 7.5.0 (#5771)
Bumps [@babel/plugin-proposal-object-rest-spread](https://github.com/babel/babel) from 7.4.4 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-05 19:08:37 +00:00
dependabot-preview[bot]
8918ac1598 Bump @babel/core from 7.4.5 to 7.5.0 (#5769)
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.5 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.5...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-05 11:46:25 -07:00
greenkeeper[bot]
d35de8a12f Update @apollographql/graphql-playground-html to the latest version 🚀 (#5773)
* fix(package): update @apollographql/graphql-playground-html to version 1.6.24

* chore(package): update lockfile package-lock.json
2019-07-05 14:13:47 +00:00
greenkeeper[bot]
fdf085f814 Update pg-promise to the latest version 🚀 (#5772)
* fix(package): update pg-promise to version 8.7.3

* chore(package): update lockfile package-lock.json
2019-07-05 13:57:40 +00:00
dependabot-preview[bot]
a160bc33bf Bump @babel/cli from 7.4.4 to 7.5.0 (#5770)
Bumps [@babel/cli](https://github.com/babel/babel) from 7.4.4 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-05 11:01:39 +00:00
dependabot-preview[bot]
7ea0b95d7b Bump @babel/preset-env from 7.4.5 to 7.5.0 (#5768)
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.5 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.5...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-05 10:43:28 +00:00
dependabot-preview[bot]
0e05313a6a Bump @apollographql/graphql-playground-html from 1.6.20 to 1.6.23 (#5767)
Bumps [@apollographql/graphql-playground-html](https://github.com/graphcool/graphql-playground) from 1.6.20 to 1.6.23.
- [Release notes](https://github.com/graphcool/graphql-playground/releases)
- [Commits](https://github.com/graphcool/graphql-playground/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-05 10:33:51 +00:00
dependabot-preview[bot]
79e8123ffe Bump graphql from 14.4.1 to 14.4.2 (#5760)
Bumps [graphql](https://github.com/graphql/graphql-js) from 14.4.1 to 14.4.2.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v14.4.1...v14.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-04 10:41:25 +00:00
dependabot-preview[bot]
1761ab9046 Bump form-data from 2.4.0 to 2.5.0 (#5759)
Bumps [form-data](https://github.com/form-data/form-data) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Commits](https://github.com/form-data/form-data/compare/v2.4.0...v2.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-04 10:32:47 +00:00
Diamond Lewis
9900a956e6 ️ Release 3.5.0 (#5754)
* ️ Release 3.5.0

* nit
2019-07-03 17:07:49 -05:00
greenkeeper[bot]
d33fb677be Update lint-staged to the latest version 🚀 (#5756)
* chore(package): update lint-staged to version 9.0.2

* chore(package): update lockfile package-lock.json
2019-07-03 06:23:53 +00:00
greenkeeper[bot]
60d9327a78 Update lint-staged to the latest version 🚀 (#5751)
* chore(package): update lint-staged to version 9.0.1

* chore(package): update lockfile package-lock.json
2019-07-02 11:46:27 +00:00
dependabot-preview[bot]
8c94c1f238 Bump lint-staged from 8.2.1 to 9.0.0 (#5750)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 8.2.1 to 9.0.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v8.2.1...v9.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-02 10:50:04 +00:00
greenkeeper[bot]
911d48b420 Update semver to the latest version 🚀 (#5747)
* fix(package): update semver to version 6.2.0

* chore(package): update lockfile package-lock.json
2019-07-01 23:36:21 +00:00
greenkeeper[bot]
28ca19b91c Update husky to the latest version 🚀 (#5746)
* chore(package): update husky to version 3.0.0

* chore(package): update lockfile package-lock.json
2019-07-01 20:46:49 +00:00
dependabot-preview[bot]
c379c51cd6 Bump semver from 6.1.2 to 6.1.3 (#5742)
Bumps [semver](https://github.com/npm/node-semver) from 6.1.2 to 6.1.3.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.1.2...v6.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-01 10:48:32 +00:00
dependabot-preview[bot]
5c77d2b757 Bump graphql from 14.4.0 to 14.4.1 (#5741)
Bumps [graphql](https://github.com/graphql/graphql-js) from 14.4.0 to 14.4.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v14.4.0...v14.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-01 10:39:35 +00:00
dependabot-preview[bot]
1c9b77975e Bump husky from 2.6.0 to 2.7.0 (#5739)
Bumps [husky](https://github.com/typicode/husky) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/typicode/husky/releases)
- [Changelog](https://github.com/typicode/husky/blob/master/CHANGELOG.md)
- [Commits](https://github.com/typicode/husky/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-28 10:34:58 +00:00
greenkeeper[bot]
87592b64a3 Update graphql to the latest version 🚀 (#5736)
* fix(package): update graphql to version 14.4.0

* chore(package): update lockfile package-lock.json
2019-06-26 23:35:50 +00:00
greenkeeper[bot]
55b32f1229 Update husky to the latest version 🚀 (#5734)
* chore(package): update husky to version 2.6.0

* chore(package): update lockfile package-lock.json
2019-06-26 14:50:39 +00:00
greenkeeper[bot]
2a215319ee Update apollo-server to the latest version 🚀 (#5733)
* fix(package): update apollo-server-express to version 2.6.7

* chore(package): update lockfile package-lock.json
2019-06-26 12:24:05 +00:00
greenkeeper[bot]
9020997c96 Update apollo-server to the latest version 🚀 (#5728)
* fix(package): update apollo-server-express to version 2.6.6

* chore(package): update lockfile package-lock.json
2019-06-25 23:33:07 +00:00
dependabot-preview[bot]
19098a46ac Bump eslint from 5.16.0 to 6.0.1
Bumps [eslint](https://github.com/eslint/eslint) from 5.16.0 to 6.0.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.16.0...v6.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-25 18:06:28 +00:00
greenkeeper[bot]
34a11971af Update flow-bin to the latest version 🚀 (#5727)
* chore(package): update flow-bin to version 0.102.0

* chore(package): update lockfile package-lock.json
2019-06-25 18:04:07 +00:00