Commit graph

1056 commits

Author SHA1 Message Date
David Glasser
b32e89c060 v1.3.6 2018-04-24 11:35:14 -07:00
David Glasser
8bd1ad0a6d CHANGELOG update 2018-04-24 11:32:30 -07:00
Jesse Rosenberger
5d7e281aa1
Pin npm to 5, at least for the time-being. (#984)
npm 6 deprecates support for Node.js 4, which is still LTS until the end of
the week.

It's probably best to take a moment and ensure that npm@6 is actually
working as we desire too, so this is just to make sure that we don't end up
with a bunch of PRs that need to be re-based/re-tested, which seems to
already be happening.
2018-04-24 16:55:52 +03:00
David Glasser
e2df79d06c core: return PersistedQueryNotSupported for Apollo Persisted Queries (#982)
Apollo Persisted Queries is a standard for sending queries as short hashes
instead of full strings, designed to work well with GET requests. It is
implemented by servers including the Apollo Engine Proxy, and by the
apollo-link-persisted-query client.

A common configuration is to set up persisted queries on production servers but
not in development. It is still convenient to leave apollo-link-persisted-query
always on, though. While apollo-link-persisted-query can detect that servers
don't support PQs, it works better if the server actually says it doesn't
support the PQ, instead of trying to process a request without a query and
potentially printing a confusing stack trace.  This commit makes apollo-server
directly return PersistedQueryNotSupported instead of allowing confusing stack
traces to occur.
2018-04-24 06:29:07 -04:00
Renovate Bot
d74f5e78e6 chore(deps): update dependency @types/chai to v4.1.3 2018-04-21 06:56:11 +00:00
Renovate Bot
591b0f2cae chore(deps): update dependency typescript to v2.8.3 2018-04-20 10:02:15 +00:00
Renovate Bot
cc579227c8 chore(deps): update dependency @types/node to v9.6.6 2018-04-20 08:02:16 +00:00
Renovate Bot
64a01c94f8 chore(deps): update dependency @types/mocha to v5.2.0 2018-04-20 06:48:48 +00:00
Renovate Bot
5bebbf12b1 chore(deps): update dependency mocha to v5.1.1 2018-04-19 07:06:26 +00:00
Jesse Rosenberger
9d0e7b6866
v1.3.5 2018-04-18 16:10:04 +03:00
Jesse Rosenberger
6cddeaf463
Update CHANGELOG.md prior to v1.3.5 release. 2018-04-18 16:06:29 +03:00
David Glasser
cbb2b22570 core: fix HttpQueryRequest typing (#834)
This field generally gets used in `any` contexts, so the error didn't cause any compilation failures.
2018-04-18 16:00:44 +03:00
renovate[bot]
625bf7ba8e chore(deps): update dependency mocha to v5.1.0 (#908) 2018-04-18 15:47:39 +03:00
Steve Rice
083a1ee60e Avoid TypeError when querystring is present, but query missing (#964)
The express-graphql reference implementation [provides a check]
(2e27a73358/src/index.js (L201-L208))
to protect against cases where a GET request is made that does not
have a `query` parameter where the GraphQL query would be present.

Without this guard, graphql-js's `parse` will return `undefined`
for the `DocumentNode` since it has no document to read. Subsequently
passing this to `isQueryOperation` results in a `TypeError`, because
we are providing `undefined` where `getOperationAst` [expects to get
a DocumentNode](5fe39262a3/src/utilities/getOperationAST.js (L19)).

A new test file is added for `runHttpQuery`, as one previously did
not seem to exist.
2018-04-18 15:38:57 +03:00
Jesse Rosenberger
0a103ef5bd
Stop violating types by returning assertions from Mocha tests. (#972)
This change was introduced by the changes in apollographql/apollo-server#802
but first showed its head in apollographql/apollo-server#908.  The reason that
violations in new type definitions aren't being found until subsequent PRs
isn't entirely clear but, ignoring that CI-related annoyance, the problem
itself here is very concrete.

It traces back to a major version update to `@types/mocha` via [Exhibit A],
which makes it unacceptable to return anything besides a `Promise` or
_nothing_ from a Mocha test factory.

I agree with this change in principle, since generally speaking there can be
multiple `expect` statements in each test and there is no particular reason
that the last one's value should be getting returned as Mocha doesn't do
anything functional with it.

More than anything, this seems like an artifact of an ESLint rule which
mandated that the last value in a function be returned, à la CoffeeScript or
other languages.

This will fix the failing tests on apollographql/apollo-server#908 and other
PRs currently in-flight.

Exhibit A: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/24301
2018-04-18 15:37:47 +03:00
Jesse Rosenberger
4cbaf4652d
Prettier for one change in #919. 2018-04-18 15:18:30 +03:00
renovate[bot]
0b235db2a3 chore(deps): update dependency @types/aws-lambda to v8 (#961) 2018-04-18 14:23:21 +03:00
Jamie Talbot
f387a1c824 Tighter context typing for GraphQLServerOptions (#919) 2018-04-18 14:16:45 +03:00
Jesse Rosenberger
f8ca710279 Use named arrow functions for all middlewares, including GraphiQL.
As originally reported in [0], this should make debugging performance issues
easier, since the name of the function will be properly displayed/shown in
flame-graphs.

[0]: https://github.com/apollographql/apollo-server/pull/827
2018-04-18 10:41:04 +03:00
Olivier Tassinari
e5e543b125 Use a named function for the middleware over an anonymous
It's making the investigation of performance issues easier.
2018-04-18 10:41:04 +03:00
Jesse Rosenberger
0c6b1bd358
Remove dev-dependency on npm-check-updates. (#959)
It appears that the intention of including `npm-check-updates` in this
repository was to provide an easy way to update dependent packages from the
console.  This was originally introduced in [Ref 0].

Unfortunately, the `npm-check-updates` package has an explicit dependency on
`npm@3`, which means that it includes the entire `npm` in its
`node_modules`.

I originally observed this when analyzing the test failures in [Ref 1] and
[Ref 2] which indicated (in its npm error) that the npm version was v3.10.10.

The explanation for this is relatively straight-forward: Older versions of
npm uses an nested tree of `node_modules` directories while newer versions
hoist `node_modules` (i.e. flatten) to the highest location possible and
only nesting dependencies to meet conflicting version constraints.

Unfortunately, that means that once `npm@3` was installed by the newer
`npm@5` as a dependency of `npm-check-updates`, it was hoisted to the
top-level `node_modules` directory, exposing `npm@3` to `npm-scripts` which
directly call `npm` commands on the nested packages, as is done on this
monorepo (with, for example the `postinstall` script which runs `npm run
compile` in each of the server middleware packages). :face_palm:

Overall, this package doesn't seem to provide enough value for us to
continue to include it, especially since we have Renovate - coupled with the
same information being available from `npm outdated` and `npm update`
commands.  I'm not sure why we would want to install newer versions than our
"package.json" allows.

Futhermore, looking at the issue tracker on `npm-check-updates`, I'm
assuming this is the reason I've seen "`dezalgo`" install errors [Ref 3] on
this repository recently and _possibly_ even a bizarrely corrupted npm cache
I encountered recently (though admittedly, that could be a stretch).

See also: [Ref 4].

[Ref 0]: https://github.com/apollographql/apollo-server/commit/d7ca07f7
[Ref 1]: https://circleci.com/gh/apollographql/apollo-server/1915
[Ref 2]: https://app.netlify.com/sites/apollo-server-docs/deploys/5acdd3b7
[Ref 3]: https://github.com/tjunnone/npm-check-updates/issues/420
[Ref 4]: https://github.com/tjunnone/npm-check-updates/issues/423
2018-04-17 22:59:00 +03:00
Jelle Breuer
0261870eb7 adonis: Set Content-type to application/json on response (#842)
* Set Content_Type to application/json on response

* Added changelog entry

* fixed styling
2018-04-17 21:49:26 +03:00
Michael Golfi
3dc9719268 Azure Functions now returns correct response body (#753)
* Added fixes to apolloAzureFunctions.js and sample functions for the GraphQL API and GraphiQL

* Added issue and pr details to changelog

* Maintain use of `context.done()`, but use `isRaw` instead.

Per the Azure documentation regarding the response object available at:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node#response-object

* Switch Azure example to use CommonJS rather than native ESM exports.
2018-04-17 21:39:06 +03:00
Renovate Bot
c87cce9a2b chore(deps): update dependency prettier to v1.12.1 2018-04-17 16:02:50 +00:00
Renovate Bot
05222b121b chore(deps): update dependency lerna to v2.10.2 2018-04-17 14:02:35 +00:00
Renovate Bot
38be32b4fc chore(deps): update dependency @types/connect to v3.4.32 2018-04-17 07:21:05 +00:00
Renovate Bot
e1cfd83124 chore(deps): update dependency @types/node to v9.6.5 2018-04-14 07:02:46 +00:00
Renovate Bot
5b7fb673ff chore(deps): update hexo-related packages 2018-04-13 13:02:59 +00:00
Renovate Bot
6306f82d2f chore(deps): update dependency prettier to v1.12.0 2018-04-12 06:47:07 +00:00
Renovate Bot
85f0bf8fff chore(deps): update dependency lerna to v2.10.1 2018-04-11 11:03:02 +00:00
Jesse Rosenberger
b8ab085aff
Add comment in code about reasoning behind #921.
It's probably helpful for posterity to leave some additional color in
the code to avoid the possibilit of someone inadvertently changing it
without considering the indirect possibilities.

cc @daffl (thanks!)

Ref: https://github.com/apollographql/apollo-server/pull/921
Ref: https://github.com/expressjs/express/issues/3473
2018-04-11 12:18:12 +03:00
David Luecke
ff154828e7 Import Restify dynamically in tests (#921) 2018-04-11 12:11:28 +03:00
Jonathan Jalouzot
afe5df4b4b FIX: Incorrect Content-Type for apollo-server-adonis (#910)
* FIX: Incorrect Content-Type for apollo-server-adonis

* feat: use response.type rather response.header

* Update CHANGELOG.md
2018-04-11 11:46:07 +03:00
renovate[bot]
a06796ed5c chore(deps): update hexo-related packages (#958) 2018-04-11 11:45:30 +03:00
Jesse Rosenberger
c2bba6b867
Convert Buffer.byteLength to string before assigning to Content-Length. (#956)
This change seems necessary in order to meet the new type definitions for
`res.setHeader` which mandate that the argument be a string, or an array of
strings.  Those type definitions were introduced via the `@types/node@9`
series of typing updates provided in [0], [1], [2].

With any luck, this will fix the failures being exhibited in CircleCI
tests[3] after we landed those typing updates.

[0]: https://github.com/apollographql/apollo-server/pull/907
[1]: https://github.com/apollographql/apollo-server/pull/927
[2]: https://github.com/apollographql/apollo-server/pull/939
[3]: https://circleci.com/gh/apollographql/apollo-server/1587
2018-04-11 11:17:55 +03:00
Renovate Bot
a8c2af0aa1 chore(deps): update dependency @types/node to v9.6.4 2018-04-11 08:08:44 +00:00
Jesse Rosenberger
db174a9b02
Switch Renovate to "pinOnlyDevDependencies".
As discussed in: https://github.com/apollographql/apollo-server/pull/955#discussion_r180413510
2018-04-11 10:51:56 +03:00
Rhys Arkins
441cd9b838 chore(renovate): disable pinning for peerDependencies (#955)
Renovate v12 introduces a default of `pinVersions=false` and removes the hardcoded `peerDependencies.pinVersions=false` setting. This repository's root level `pinVersions=true` therefore then trickles down to `peerDependencies` as well. This PR updates Renovate config to use a preset that pins everything except `peerDependencies`.
2018-04-10 15:51:07 +03:00
Renovate Bot
4db35ab966 chore(deps): update dependency lerna to v2.10.0 2018-04-09 05:01:50 +00:00
Renovate Bot
a546cde881 chore(deps): update dependency @types/koa to v2.0.45 2018-04-08 05:01:33 +00:00
Renovate Bot
cb8d763c1d chore(deps): update dependency @types/aws-lambda to v0.0.35 2018-04-07 06:37:48 +00:00
renovate[bot]
80f6f1c56d chore(deps): pin dependency hexo-prism-plus to v1.0.0 (#949) 2018-04-06 22:39:51 +03:00
Jesse Rosenberger
9dc25a7895
docs: Update apollo-hexo-config to 1.0.7.
To enable Prism syntax highlighting, along with the new `meteor-theme-hexo`.

Ref: https://github.com/apollographql/apollo-hexo-config/commit/547107b0
Ref: https://github.com/meteor/meteor-theme-hexo/pull/61
2018-04-06 21:27:55 +03:00
Jesse Rosenberger
7ca7796fab
docs: Update meteor-theme-hexo to 1.0.4.
To enable Prism syntax highlighting.

[0] https://github.com/meteor/meteor-theme-hexo/pull/61
2018-04-06 21:22:07 +03:00
Jesse Rosenberger
0fd2df2fe1 docs: Add hexo-prism-plus to enable Prism syntax highlighting.
The default syntax highlighting provided by Hexo uses highlight.js.  While
there are a number of great syntax highlights provided by highlight.js, some of
the more important ones to the Apollo project: `graphql`, `typescript`, and
`jsx` are notably missing.

This uses the `hexo-prism-plus` plugin for Hexo, along with some upstream
configuration to `apollo-hexo-config`[0] and `meteor-theme-hexo` (previously
named `hexo-theme-meteor`)[1].  See refs for more information!

[0] https://github.com/apollographql/apollo-hexo-config/commit/547107b0
[1] https://github.com/meteor/meteor-theme-hexo/pull/61
2018-04-06 21:06:26 +03:00
Renovate Bot
b2eb1066c0 chore(deps): update dependency apollo-hexo-config to v1.0.6 2018-04-06 13:01:51 +00:00
Renovate Bot
fb0e4332fd chore(deps): update dependency @adonisjs/fold to v4.0.8 2018-04-05 06:36:37 +00:00
Renovate Bot
aa3bca919a chore(deps): update dependency @types/node to v9.6.2 2018-04-04 06:40:18 +00:00
Renovate Bot
84f93b201f chore(deps): update dependency hapi to v17.3.1 2018-04-03 06:52:51 +00:00
Renovate Bot
7492aebeb0 chore(deps): update dependency sinon to v4.5.0 2018-03-31 08:04:19 +00:00