Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/graphql / src / apollo-fork
  ..
  apollo-express
  apollo-server-core
  README.md
  index.ts
  oneRequest.ts
Size: Mime:

Apollo-server

this was forked because it did not pass request down through the resolvers

Ticket

Read More

Flow

1

$request[client] _______> skava-graphql $request[client] _______> express server $request[client] > cookie middleware (express) $request[client] > resolvers (apollo) $request[proxy] > http request (node-fetch, 1request) => /api (proxy) $request[proxy]> proxy (express) $request[stream]> http request (node-fetch, 1request) => stream $request[stream]> respond to $request[client] (request.send)

2

$request[BOB][client] _____> skava-graphql $request[SUE][client] _____> skava-graphql $request[BOB][client] _____> express server $request[BOB][client] _____> cookie middleware (express)

NOW SUES REQUEST IS SETTING THE COOKIE

$request[SUE][client] _____> express server $request[SUE][client] _____> cookie middleware (express)

3

BOB HAS THE COOKIE FOR SUE

$request[BOB][client] _____> resolvers (apollo) $request[BOB][proxy] _____> http request (node-fetch, 1request) => /api (proxy) $request[BOB][proxy] _____> proxy (express) THIS IS WHERE THE COOKIE IS USED $request[BOB][stream] _____> http request (node-fetch, 1request) => stream $request[BOB][stream] _____> respond to $request[client] (request.send)

SUE HAS THE COOKIE FOR SUE

$request[SUE][client] _____> resolvers (apollo) $request[SUE][proxy] _____> http request (node-fetch, 1request) => /api (proxy) $request[SUE][proxy] _____> proxy (express) THIS IS WHERE THE COOKIE IS USED $request[SUE][stream] _____> http request (node-fetch, 1request) => stream $request[SUE][stream] _____> respond to $request[client] (request.send)

4

$request[BOB][client] _____> skava-graphql $request[SUE][client] _____> skava-graphql $request[BOB][client] _____> express server $request[BOB][client] _____> cookie middleware (express) IT NEEDS TO CREATE ITS OWN CONTEXT HERE $request[SUE][client] _____> express server $request[SUE][client] _____> cookie middleware (express) IT NEEDS TO CREATE ITS OWN CONTEXT HERE

Changes

$request[client] _______> skava-graphql $request[client] _______> express server

$request[client] _______> cookie middleware (express) -> REMOVED THIS

$request[client] _______> resolvers (apollo) -> FORWARDED REQUEST HERE INTO EACH RESOLVER -> (forked apollo-server-core to set request onto conext)

$request[proxy] _______> http request (node-fetch, 1request) => /api (proxy) ** -> SET COOKIE FROM THE FORWARDED REQUEST, ONTO THE 1 REQUEST TO THE PROXY -> (forked oneRouter to forwardRequest so we can replicate quickly)

$request[proxy]_______> proxy (express) NOW WE NEED TO GET THE COOKIE OUT OF THE 1REQUEST HEADERS (we just added it to the headers in the last step) then done

$request[stream]> http request (node-fetch, 1request) => stream $request[stream]> respond to $request[client] (request.send)