Commit graph

31 commits

Author SHA1 Message Date
Evans Hauser
13b796fe34
Publish
- apollo-cache-control@0.2.0-rc.0
 - apollo-datasource-rest@2.0.0-rc.7
 - apollo-engine-reporting@0.0.0-rc.1
 - apollo-server-caching@2.0.0-rc.7
 - apollo-server-cloudflare@2.0.0-rc.7
 - apollo-server-core@2.0.0-rc.7
 - apollo-server-env@2.0.0-rc.7
 - apollo-server-errors@2.0.0-rc.7
 - apollo-server-express@2.0.0-rc.7
 - apollo-server-hapi@2.0.0-rc.7
 - apollo-server-integration-testsuite@2.0.0-rc.7
 - apollo-server-koa@2.0.0-rc.7
 - apollo-server-lambda@2.0.0-rc.7
 - apollo-server-memcached@2.0.0-rc.7
 - apollo-server-micro@2.0.0-rc.7
 - apollo-server-redis@2.0.0-rc.7
 - apollo-server@2.0.0-rc.7
 - apollo-tracing@0.2.0-rc.0
 - graphql-extensions@0.1.0-rc.1
2018-07-09 19:32:59 -07:00
Martijn Walraven
f8feca870a Move lru-cache dependency to apollo-server-caching 2018-07-09 16:51:30 -07:00
Martijn Walraven
0b5c7f31c8 Export RequestOptions from apollo-datasource-rest 2018-07-03 14:45:13 +02:00
Martijn Walraven
928ef7d441
Allow dynamic configuration of data sources (#1277)
Closes #1181 and #1238.
2018-07-03 11:41:43 +02:00
Martijn Walraven
3ad0c43b82 Fix test typings 2018-06-30 08:35:15 +02:00
Evans Hauser
63f6b4790b
Publish
- apollo-datasource-rest@2.0.0-rc.6
 - apollo-engine-reporting@0.0.0-rc.0
 - apollo-server-caching@2.0.0-rc.6
 - apollo-server-cloudflare@2.0.0-rc.6
 - apollo-server-core@2.0.0-rc.6
 - apollo-server-env@2.0.0-rc.6
 - apollo-server-errors@2.0.0-rc.6
 - apollo-server-express@2.0.0-rc.6
 - apollo-server-hapi@2.0.0-rc.6
 - apollo-server-integration-testsuite@2.0.0-rc.6
 - apollo-server-lambda@2.0.0-rc.6
 - apollo-server-memcached@2.0.0-rc.6
 - apollo-server-redis@2.0.0-rc.6
 - apollo-server@2.0.0-rc.6
 - graphql-extensions@0.1.0-rc.0
2018-06-29 11:27:36 -07:00
Martijn Walraven
53d7a753c2 Re-export Request from apollo-datasource-rest 2018-06-28 20:56:05 +02:00
Martijn Walraven
c2e4dfb265 Import graphql-extensions+apollo-engine-reporting/no global apollo-server-env (#1259)
* Export polyfills and types separately

* More imports from apollo-server-env

* Initial commit

* Add .npmignore to avoid ignoring lib when publishing

* 0.0.2

* Reorganize code and clean up GraphQLExtension interface

* 0.0.3

* Add support for timing callbacks and add GraphQLExtensionStack

* 0.0.4

* Downgrade target in tsconfig.json from es2015 to es5

* 0.0.5

* Bump `graphql` peerDependency. (#3)

* 0.0.6

* Update dependencies

* 0.0.7

* whenResultIsFinished fix for array results (#4)

* 0.0.8

* [apollo-bot] Update the Issue/PR Templates with auto label (#6)

* Bump `graphql` peerDependency. (#7)

* Update `graphql` peer dependency range to allow 0.13.x. (#8)

* Update `devDependencies` to latest versions. (#9)

* dev: Update TypeScript to latest version, v2.7.2.

* dev: Update `graphql` to latest version, v0.13.2.

* dev: Update jest & dependencies to latest versions.

* dev: Update type definitions for `graphql`, `node` and `jest`.

* Allow `undefined` return values to `GraphQLExtension`'s `format()`. (#10)

In some cases, it's conceivable that the `format()` method may need to abort
its decision to provide extension information at runtime, in the event that
it doesn't have the proper information to return a full-result.

The `format` method already removed false-y results, so this simply changes
the types to allow the same.

* 0.0.9

* Fix lifecycle method invocations on extensions

* 0.0.10

* Add changelog

* Upgrade to TypeScript 2.8

Makes my editor integration happier (a bugfix in tsserver I think)

* Add tslint and prettier

Same configuration as apollo-engine-js

* Remove magic from GraphQLExtensionStack constructor

It's not hard to consistently pass in an actual extension object to this
low-level API.

* New extension API: didStart handlers return didEnd handlers

This is a backwards-incompatible change: GraphQLExtension implementations and
users of GraphQLExtensionStack (ie apollo-server-core) must change their
implementations, if they implement any of the xDidStart/xDidEnd APIs.

This allows "didEnd" handlers to refer to closure variables from the "didStart"
handler rather than needing to store state on the extension.

The new "didEnd" handlers run in the opposite order of the "didStart" handlers,
so that they properly nest.

* 0.1.0-beta.0

* Changelog

* Add magic back into GraphQLExtensionStack constructor

But now it actually gets more context (the execution arguments) and doesn't have
to be a constructor.

* 0.1.0-beta.1

* Export more types

* 0.1.0-beta.2

* Fix lifecycle handlers to pass proper "this"

* 0.1.0-beta.3

* Pass options directly to start handlers; eliminate factory again

* 0.1.0-beta.4

* error handling in didEnd

* 0.1.0-beta.5

* pass multiple errors to EndHandler

* 0.1.0-beta.6

* add willSendResponse

* 0.1.0-beta.7

* prettier

* setFieldResolver for custom fieldResolver

* reverse

* get more initial options into requestDidStart

* 0.1.0-beta.8

* 0.1.0-beta.9

* Actually, we already get the fieldResolver!

* 0.1.0-beta.10

* work without extensionStack

* 0.1.0-beta.11

* 0.1.0-beta.12

* Send errors to willResolveField callback

* 0.1.0-beta.13

* willSendResponse can return a result

* 0.1.0-beta.14

* Revert 1063be8..56912fc

This reverts commit 1063be8..56912fc.

* add PQ options to requestDidStart

* 0.1.0-beta.14

* 0.1.0-beta.15

* Initialize an empty TypeScript/Jest package

Template based on apollo-engine-js

* Basic trace node structure building

* basic timing

* Checkpoint towards signature implementation

The new signature implementation does not try to compress whitespace.

* Basic signature implementation

* progress towards actual reporting

* basic checkpoint for reporting

* 0.0.0-beta.1

* pull in @types/long, since it is in the external api

* 0.0.0-beta.2

* get rid of Long

* 0.0.0-beta.3

* debug log request what happened

* 0.0.0-beta.4

* 0.0.0-beta.5

* correct url

* 0.0.0-beta.6

* request headers

* 0.0.0-beta.7

* leave out a few headers

* 0.0.0-beta.8

* prettier

* move stuff into multiple files, and stop exporting the extension

* lots of doc comments

* address agent.ts XXX comments

* implement privateVariables

simplify API by removing flush() and allowing flush-ers to just call sendReport
directly

* privateHeaders and error tracking

* gzip, signals

* fix test

* 0.0.0-beta.9

* Error handling for reports

* 0.0.0-beta.10

* no need to include boring stacktrace

* 0.0.0-beta.11

* tweak error reporting

* 0.0.0-beta.12

* package-lock update (npm@6?)

* Reduce target report size to 512KB from 4MB.

Load testing revealed that protobuf encoding for large FullTraceReports could
tie up CPU and reduce p99 request latency (eg, to 200ms from 10ms). Reducing the
default target report size spreads out the encoding time and mitigates the
impact on latency.  If this is not acceptable for all users, we may have to
investigate reintroducing agent-side stats aggregation to keep report sizes
small.

* 0.0.0-beta.13

* Encode Traces as they come in

This improves p99 times with little effect on p50 times. It also lets us get rid
of the heuristic average trace size estimation.

* 0.0.0-beta.14

* support PQ fields

* npm audit fix

* 0.0.0-beta.15

* ignore coverage

* Make the default signature more aggressive

We'd rather tell people confused by literal removal to tweak the signature than
tell people causing outages to do so.

* 0.0.0-beta.16

* Remove obsolete files from graphql-extensions and apollo-engine-reporting

* Fix dependencies and configs

* Fix apollo-server-cloudflare to import from apollo-server-env

* Fix compilation and test configs

* Get all tests passing again

* Switch to Lerna independent versioning

* Polyfill promisify for Node < 8 and load polyfills in tests

* ES2016 exponentiation operator is only supported in Node > 6

* add dependency cache for circle

* add missing env dependencies in REST datasource
2018-06-27 16:29:00 -07:00
Evans Hauser
3ad05191bd
v2.0.0-rc.5 2018-06-25 16:51:07 -07:00
David Glasser
2ca26ab29b v2.0.0-rc.4 2018-06-25 13:58:12 -07:00
Martijn Walraven
b6e2096876 Allow passing a body to POST, PATCH and PUT in data source 2018-06-25 21:52:19 +02:00
Martijn Walraven
4d7a34f6f5 Add trailing slash to baseURL of data source if needed 2018-06-25 19:54:04 +02:00
Martijn Walraven
acedc2690b v2.0.0-rc.3 2018-06-24 12:30:42 +02:00
Evans Hauser
4770f381d3
v2.0.0-rc.2 2018-06-21 19:53:33 -07:00
Evans Hauser
3bc09decb4
v2.0.0-rc.1 2018-06-21 15:33:07 -07:00
Evans Hauser
d1878703d3
Move Uploads to constructor and remove enhanceSchema (#1204)
* move uploads into server constructor

* remove enhanceSchema

* address feedback
2018-06-21 12:16:52 -07:00
Martijn Walraven
71a403dfa3 Set cached response TTL based on max-age 2018-06-21 16:51:02 +02:00
Martijn Walraven
8914b135df Add error handling to RESTDataSource and extract apollo-server-errors
Because apollo-server-core depends on apollo-datasource-rest, we need to extract errors into their own package to avoid a circular dependency.
2018-06-21 15:28:14 +02:00
Evans Hauser
9af856c2c8
Typescript Improvements and esModuleInterop fix (#1210)
* add string input to gql tag

* remove esModuleInterop, tested locally

* change IMPORT_FUNCTION to something real

* fix the rest of the tests
2018-06-20 16:21:50 -07:00
Martijn Walraven
655ead3b1b Move shared mocks to top-level and enforce noImplicitAny 2018-06-20 12:21:52 +02:00
Martijn Walraven
d38e289821 Log RESTDataSource requests in development 2018-06-20 12:00:11 +02:00
Martijn Walraven
0928d79efb Move in memory cache to apollo-server-caching 2018-06-20 11:06:24 +02:00
Martijn Walraven
b76c1004e6 Only attempt to parse responses with the right Content-Type as JSON 2018-06-19 13:23:14 +02:00
Martijn Walraven
073655af8e Remove willReceiveCache and willReceiveContext from RESTDataSource 2018-06-19 11:14:22 +02:00
Martijn Walraven
74d7f53501 Add any as default type parameter for TResponse in RESTDataSource 2018-06-19 10:20:13 +02:00
Martijn Walraven
cde54349b3 Extract URLSearchParamsInit type and use it in RESTDataSource 2018-06-19 10:14:59 +02:00
Fabien BERNARD
86fd88ee6f Add type parameter for responses and add PATCH method (#1190) 2018-06-19 09:40:42 +02:00
Clarence Ngoh
43627ec221 Add support for Redis and Memcached with ttls (#1191)
* Refactored caching connectors into their own packages
- apollo-server-caching (exports interface for KeyValueCache)
- apollo-server-caching-memcached
- apollo-server-caching-redis
One issue now is that there is duplication of mocks and test code in each of the packages. It would be better if we had centralized integration tests for all cache connectors, community contributed or otherwise.

* export test suite for cache connectors from `apollo-server-caching`

* fixed tsconfig.json

* added @types
2018-06-18 19:36:51 -07:00
Martijn Walraven
7496eb034d Run test in apollo-datasource-rest as part of monorepo tests 2018-06-18 11:57:19 +02:00
Evans Hauser
9588468875
v2.0.0-rc.0 2018-06-14 23:18:07 -07:00
Martijn Walraven
685d3399db Apollo Server 2.0 - Caching + RESTDataSource (#1163)
* Enable declarationMap in tsconfig.json

See http://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html

* Add apollo-server-caching package and improve typings

* Remove superfluous test steps

* Add .npmignore to apollo-server-caching

* Add apollo-server-env and apollo-datasource-rest packages

* Fix broken imports

* Use prepublish instead of prepare

* cache is now passed to data sources from ApolloServer constructor

* fix Object.values to use the object passed in rather than this

* add initial datasource test

* docs: initial data source documentation

* docs: initial data source documentation

* compiles and documentation now highlights code in data-sources.md

* Some changes to the data source docs
2018-06-14 23:13:33 -07:00