Commit graph

2818 commits

Author SHA1 Message Date
Dennis Johnson
95949971d4 chore(deps): update dependency @types/koa-bodyparser to a valid 4.2.1… (#2217)
… version

This PR should hopefully correct some typing issues we are currently facing.

The problem:
- this package references v5.0.1 for @types/koa-bodyparser
- when we start our server that also uses koa-bodyparser for non-graphql routes, the type for koa.Request sets the "body" field to:

```
declare module "koa" {
    interface Request {
        body: {} | null | undefined;
        rawBody: {} | null | undefined;
    }
}
```

Which breaks our type defs for koa-bodyparser as we actually want "body" to be set to "any."

The v5.0.1 that was originally placed here is no longer "latest" and they have published a new v4 version that has the correct typing for koa-bodyparser (setting body to any). - https://www.npmjs.com/package/@types/koa-bodyparser

<!--
  Thanks for filing a pull request on GraphQL Server!

  Please look at the following checklist to ensure that your PR
  can be accepted quickly:
-->

TODO:

* [ ] Update CHANGELOG.md with your change (include reference to issue & this PR)
* [x] Make sure all of the significant new logic is covered by tests
* [x] Rebase your changes on master so that they can be merged easily
* [x] Make sure all tests and linter rules pass
2019-02-04 18:10:07 +02:00
Jesse Rosenberger
d0998e7e28
Merge remote-tracking branch 'origin/master' into release-2.4.0 2019-02-04 17:22:15 +02:00
Jesse Rosenberger
6853b5238c
docs: Fix misspelling of "example".
Follows-up #2231.
2019-02-04 15:05:20 +02:00
Bill Fienberg
60794ecad0 Fix grammar error (missing preposition) (#2231)
*Before*: allows the addition custom
*After*: allows the addition of custom
2019-02-04 15:04:37 +02:00
renovate[bot]
b206057456
chore(deps): update dependency prettier to v1.16.4 (#2268) 2019-02-04 12:20:22 +00:00
Jesse Rosenberger
060ec62cd1
Merge pull request #2259 from apollographql/abernix/engine-signatures-to-apollo-graphql
Move `apollo-engine-reporting` signatures into `apollo-graphql`.
2019-02-04 13:05:12 +02:00
renovate[bot]
79ccf888da
chore(deps): update dependency lint-staged to v8.1.3 (#2267) 2019-02-04 10:20:54 +00:00
renovate[bot]
316137f084
chore(deps): update dependency lerna to v3.10.8 (#2262) 2019-02-02 06:14:48 +00:00
renovate[bot]
babb774bfe
chore(deps): update dependency apollo-link-http to v1.5.11 (#2261) 2019-02-02 05:16:16 +00:00
renovate[bot]
16f2f155b8
chore(deps): update dependency apollo-link to v1.2.8 (#2260) 2019-02-02 04:16:24 +00:00
Jesse Rosenberger
e84aca256c
Update apollo-server.md to reflect new location of signature reference. 2019-02-01 20:40:28 +02:00
Jesse Rosenberger
59d5a5088a
Add apollo-graphql as a project reference to apollo-engine-reporting. 2019-02-01 20:40:28 +02:00
Jesse Rosenberger
d4a5cad2d1
Also update jest.config.base.js RegExp with new apollo-graphql package. 2019-02-01 20:40:28 +02:00
Jesse Rosenberger
b3758d8e47
Update apollo-engine-reporting's CHANGELOG.md for a major breaking change. 2019-02-01 20:40:27 +02:00
Jesse Rosenberger
9eca821345
Bump the major version of apollo-engine-reporting. 2019-02-01 20:40:27 +02:00
Jesse Rosenberger
21c274870f
Use lodash.sortby modularly, rather than all of lodash.
Currently, the only place that we use `lodash` in the entire `apollo-server`
repository is to utilize the `sortBy` function in this signature generation.

Looking at the bundle stats, it appears that lodash represents 7.1% of the
`apollo-server` package.  We're a server, so bundle size is generally less
of a concern, but it's still not to be ignored, particularly as we move into
worker environments.  More pressingly though, since this package will be
utilized by the `apollo` CLI, we'll be shaving precious download time off
the invocation of `npx apollo` if we can get this down.

By switching to the modular package (but still depending on `@types/lodash`
for _just_ the `ListIteratee` type — which we only need in development — we
should be able to trim 55.4kB minified (19.1kB minified+gzip'd) off the
`apollo-server` build.

cc @trevor-scheer @jbaxleyiii @martijnwalraven
2019-02-01 20:40:14 +02:00
Jesse Rosenberger
96de2d71d7
Move Engine signature AST traversals/transforms into ./transforms module.
These AST visitors and transformations are more generally usable for other
purposes rather than just the Apollo Engine signature reporting and would
seem to belong in a module of their own.
2019-02-01 20:40:11 +02:00
Jesse Rosenberger
e565226370
Move apollo-engine-reporting signature calculations to new apollo-graphql.
Many of these signature calculation functions are now utilized in tools or
helpers which are not directly related to `apollo-server` functionality,
including various aspects of the `apollo` CLI which live within
`apollo-tooling`.

Currently, because of `apollo`'s dependency on `apollo-engine-reporting` for
this signature, this requires bringing in the entire dependency tree which
`apollo-server-core` relies on since `apollo-engine-reporting` depends on
`apollo-server-core`.

By moving this into this new `apollo-graphql` utility library, we're able to
trim that rather hefty dependency tree and drastically reduce the download
for running, say, `npx apollo`.
2019-02-01 19:03:59 +02:00
Jesse Rosenberger
1a3ac9b4a0
Move Apollo Engine signatures into apollo-graphql. 2019-02-01 18:43:04 +02:00
Jesse Rosenberger
6092e99bf1
Publish
- apollo-graphql@0.0.1-alpha.0
2019-02-01 18:22:58 +02:00
Jesse Rosenberger
e55f231291
Setup the foundation for a new apollo-graphql utility library.
As of this commit, this package provides nothing!
2019-02-01 18:20:59 +02:00
Jesse Rosenberger
5bcf06a1b8
Update package-lock.json with >=npm@6.6.0 to fix optional flapping.
Hopefully!
2019-02-01 16:34:28 +02:00
Jesse Rosenberger
21c4c11a18
Merge remote-tracking branch 'public/master' into release-2.4.0 2019-02-01 14:00:59 +02:00
renovate[bot]
7dc854935d
chore(deps): update dependency @types/node to v10.12.21 (#2256) 2019-02-01 07:17:13 +00:00
renovate[bot]
76862f67e4
chore(deps): update dependency typescript to v3.3.1 (#2255) 2019-02-01 05:17:56 +00:00
renovate[bot]
455c7ebc86
chore(deps): update dependency hapi to v17.8.3 (#2254) 2019-02-01 04:15:35 +00:00
Jesse Rosenberger
8d9d7fea12
Publish
- apollo-engine-reporting@0.2.2
 - apollo-server-core@2.3.4
2019-01-31 19:03:17 +02:00
Trevor Scheer
b64895ddec
Add apollo-server-core to deps in apollo-engine-reporting (#2248)
* Add apollo-server-core to deps in apollo-engine-reporting

* Add reference to requestPipelineAPI
2019-01-31 08:59:36 -08:00
Michael P. Geraci
a0e25cf2bd Fix a typo in the "Custom GraphQLScalarType instance" example (#2247)
This is just a quick fix for a typo that threw me for a loop when testing out this example.
2019-01-31 10:12:47 +02:00
renovate[bot]
c561b02e99
chore(deps): update dependency prettier to v1.16.3 (#2251) 2019-01-31 06:19:07 +00:00
renovate[bot]
671453ef53
chore(deps): update dependency @types/node-fetch to v2.1.5 (#2250) 2019-01-31 04:55:26 +00:00
renovate[bot]
57433c456d
chore(deps): update dependency @types/node to v10.12.20 (#2249) 2019-01-31 04:19:43 +00:00
renovate[bot]
0ba70f97b0
chore(deps): update dependency prettier to v1.16.2 (#2245) 2019-01-30 10:27:42 +00:00
Jesse Rosenberger
03283f9ad3
Merge branch 'master' into release-2.4.0 2019-01-29 12:10:13 +02:00
Jesse Rosenberger
5939327edd
Publish
- apollo-server-azure-functions@2.3.3
 - apollo-server-cloud-functions@2.3.3
 - apollo-server-cloudflare@2.3.3
 - apollo-server-core@2.3.3
 - apollo-server-express@2.3.3
 - apollo-server-hapi@2.3.3
 - apollo-server-integration-testsuite@2.3.3
 - apollo-server-koa@2.3.3
 - apollo-server-lambda@2.3.3
 - apollo-server-micro@2.3.3
 - apollo-server-plugin-base@0.2.3
 - apollo-server-testing@2.3.3
 - apollo-server@2.3.3
 - graphql-extensions@0.4.3
2019-01-29 11:51:30 +02:00
Jesse Rosenberger
3d106039b6
Update CHANGELOG.md in preparation for v2.3.3 release. 2019-01-29 11:39:28 +02:00
Jesse Rosenberger
db39aa5604
Remove willStart from apollo-server, already called via …-express. (#2239)
* Remove `willStart` from `apollo-server`, already called via `...-express`.

When the request pipeline was initially introduced, the integrations
had yet to be updated to call the new life-cycle events.  Now, the
integrations have all caught up, but `apollo-server` is still calling
`willStart`, despite the fact that its dependency which provides the actual
server implementation — `apollo-server-express` – is _also_ calling it,
resulting in double invocation of this event.

I suspect some follow-up work should guard against this possibility, but for
now this should remove the duplication.

* Update CHANGELOG.md for #2239.

Ref: https://github.com/apollographql/apollo-server/pull/2239
2019-01-29 11:39:08 +02:00
Kurt Mackey
cd674aae72 More strict check for node version for graphql-upload (#2235)
Stop traversing the `graphql-upload` module tree in all non-Node.js environments, to support subset-V8 runtimes like Fly.io.
2019-01-29 11:36:40 +02:00
renovate[bot]
25028e3678
chore(deps): update dependency @types/node to v10.12.19 (#2238) 2019-01-29 05:21:43 +00:00
renovate[bot]
78512662eb
chore(deps): update dependency @types/aws-lambda to v8.10.18 (#2237) 2019-01-29 04:21:16 +00:00
renovate[bot]
7a9cdbbd7d
chore(deps): update dependency lint-staged to v8.1.1 (#2236) 2019-01-29 03:19:50 +00:00
renovate[bot]
82674bf129
chore(deps): update dependency koa to v2.7.0 (#2233) 2019-01-28 11:09:34 +00:00
Arthie
0e5437bd0e
Fix Typescript WebSocket import error
I get the following error when using the apollo-server-core with typescript (3.2.4) :

node_modules/apollo-server-core/dist/types.d.ts:4:8 - error TS1192: Module '"/node_modules/@types/ws/index"' has no default export.
import WebSocket from 'ws';

The change fixes this error!
2019-01-26 12:42:53 +01:00
Jesse Rosenberger
02ebad271e
Update package-lock.json to (hopefully) fix optional dependency flapping.
Thanks to npm@6.6.0!
2019-01-25 20:30:27 +02:00
Jesse Rosenberger
dc46e58525
Update low-severity merge (devDependency) to satiate npm audit fix. 2019-01-25 20:26:58 +02:00
Jesse Rosenberger
d48d0972c5
Publish
- apollo-cache-control@0.4.1
 - apollo-datasource-rest@0.2.2
 - apollo-datasource@0.2.2
 - apollo-engine-reporting@0.2.1
 - apollo-server-azure-functions@2.3.2
 - apollo-server-cache-memcached@0.2.2
 - apollo-server-cache-redis@0.2.2
 - apollo-server-caching@0.2.2
 - apollo-server-cloud-functions@2.3.2
 - apollo-server-cloudflare@2.3.2
 - apollo-server-core@2.3.2
 - apollo-server-express@2.3.2
 - apollo-server-hapi@2.3.2
 - apollo-server-integration-testsuite@2.3.2
 - apollo-server-koa@2.3.2
 - apollo-server-lambda@2.3.2
 - apollo-server-micro@2.3.2
 - apollo-server-plugin-base@0.2.2
 - apollo-server-testing@2.3.2
 - apollo-server@2.3.2
 - apollo-tracing@0.4.1
 - graphql-extensions@0.4.2
2019-01-25 18:48:18 +02:00
Jesse Rosenberger
8a9d5cf828
Polish CHANGELOG.md prior to v2.3.2 release. 2019-01-25 18:46:11 +02:00
Jesse Rosenberger
14c93a5ecf
Update apollo-cache-control's CHANGELOG.md in preparation for publishing. 2019-01-25 18:19:43 +02:00
David Glasser
821578775d apollo-cache-control: consider hintless root fields to be uncached (#2210)
This is consistent with the old engineproxy interpretation of cache hints. We
special-case scalar fields to inherit their parent field's hints for
simplicity (so you don't have to hint every scalar field in a hinted object),
but when the parent field is non-root that inherited hint gets defaultMaxAge
applied to it. When the parent field is the root, that inherited hint doesn't
get defaultMaxAge applied because we don't run willResolveField for the root
query.

Includes a CHANGELOG update for #2197.
2019-01-25 18:06:25 +02:00
Jesse Rosenberger
18d9041db7
Don't write to persisted query cache until execution will begin. (#2227)
Since we already write to the persisted query cache asynchronously (and
intentionally do not await the Promise) this won't have any affect on the
current behavior of when the persisted query cache is written to in the
event of an executable request, but if an operation comes in and doesn't
parse or validate, we'll avoid wasting cache space on an operation that will
never execute.

Additionally, in a similar light, if a plugin throws an error which stops
execution, we can avoid the side-effect of writing to the persisted query
cache.

In terms of the APQ behavior, while this could cause additional round-trips
for a client which repeatedly sends an invalid operation, that operation is
never going to successfully finish anyway.  While developer tooling will
help avoid this problem in the first place, this refusal to store an invalid
operation in the APQ cache could actually help diagnose a failure since the
full operation (rather than just the SHA256 of that document) will appear
in the browser's dev-tools on the retry.

If we're looking to spare parsing and validating documents which we know are
going to fail, I think that's going to be a better use of the (new)
`documentStore` cache (#2111), since its in-memory and can accommodate a
more complex data structure which includes the validation errors from the
previous attempt which will, of course, be the same when validating the same
operation against the same schema again.  As the PR that introduced that
feature shows, sparing those additional parses and validations (cached APQ
documents still needs to be parsed and validated, currently) will provide a
more successful performance win overall.

Ref: https://github.com/apollographql/apollo-server/pull/2111
2019-01-25 18:01:15 +02:00