Skip to content

Commit 82b22b8

Browse files
committed
add serverless middleware
1 parent aa05169 commit 82b22b8

File tree

6 files changed

+137
-2
lines changed

6 files changed

+137
-2
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit c2923e031c1338a7d5b3adb1a5a21c7af2a5d51c

packages/graphql-playground-middleware/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "graphql-playground-middleware",
3-
"version": "1.0.36-alpha.10",
3+
"version": "1.0.36-alpha.11",
44
"homepage": "https://github.com/graphcool/graphql-playground/tree/master/packages/graphql-playground-middleware",
55
"description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).",
66
"contributors": [
@@ -20,6 +20,7 @@
2020
"keywords": [],
2121
"devDependencies": {
2222
"@types/node": "^8.0.47",
23+
"aws-lambda": "^0.1.2",
2324
"express": "^4.16.2",
2425
"hapi": "^16.6.2",
2526
"koa": "^2.3.0",

packages/graphql-playground-middleware/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ import { default as expressPlayground } from './express'
22
import { default as hapiPlayground } from './hapi'
33
import { default as koaPlayground } from './koa'
44
import { default as renderPlaygroundPage } from './render-playground-page'
5+
import { default as lambdaPlayground } from './lambda'
56

67
export {
78
expressPlayground,
89
hapiPlayground,
910
koaPlayground,
1011
renderPlaygroundPage,
12+
lambdaPlayground,
1113
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import * as lambda from 'aws-lambda'
2+
import renderPlaygroundPage, {
3+
MiddlewareOptions,
4+
} from './render-playground-page'
5+
6+
/* tslint:disable-next-line */
7+
const { version } = require('../package.json')
8+
9+
export default function lambdaPlayground(options: MiddlewareOptions) {
10+
return (event, lambdaContext: lambda.Context, callback: lambda.Callback) => {
11+
const middlewareOptions: MiddlewareOptions = {
12+
...options,
13+
version,
14+
}
15+
const body = renderPlaygroundPage(middlewareOptions)
16+
callback(null, {
17+
statusCode: 200,
18+
headers: {
19+
'Content-Type': 'text/html',
20+
},
21+
body,
22+
})
23+
}
24+
}

packages/graphql-playground-middleware/yarn.lock

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,37 @@ [email protected]:
3535
version "1.1.1"
3636
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
3737

38+
aws-lambda@^0.1.2:
39+
version "0.1.2"
40+
resolved "https://registry.yarnpkg.com/aws-lambda/-/aws-lambda-0.1.2.tgz#19b1585075df31679597b976a5f1def61f12ccee"
41+
dependencies:
42+
aws-sdk "^*"
43+
commander "^2.5.0"
44+
dotenv "^0.4.0"
45+
46+
aws-sdk@^*:
47+
version "2.142.0"
48+
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.142.0.tgz#efdf69d2be3132aa51d4e7abb2c28fe42771e3ec"
49+
dependencies:
50+
buffer "4.9.1"
51+
crypto-browserify "1.0.9"
52+
events "^1.1.1"
53+
jmespath "0.15.0"
54+
querystring "0.2.0"
55+
sax "1.2.1"
56+
url "0.10.3"
57+
uuid "3.1.0"
58+
xml2js "0.4.17"
59+
xmlbuilder "4.2.1"
60+
3861
3962
version "3.0.3"
4063
resolved "https://registry.yarnpkg.com/b64/-/b64-3.0.3.tgz#36afeee0d9345f046387ce6de8a6702afe5bb56e"
4164

65+
base64-js@^1.0.2:
66+
version "1.2.1"
67+
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
68+
4269
4370
version "1.18.2"
4471
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
@@ -60,6 +87,14 @@ [email protected], boom@^5.2.0:
6087
dependencies:
6188
hoek "4.x.x"
6289

90+
91+
version "4.9.1"
92+
resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
93+
dependencies:
94+
base64-js "^1.0.2"
95+
ieee754 "^1.1.4"
96+
isarray "^1.0.0"
97+
6398
6499
version "3.0.0"
65100
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
@@ -89,6 +124,10 @@ co@^4.6.0:
89124
version "4.6.0"
90125
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
91126

127+
commander@^2.5.0:
128+
version "2.11.0"
129+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
130+
92131
[email protected], content-disposition@~0.5.0:
93132
version "0.5.2"
94133
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
@@ -124,6 +163,10 @@ [email protected], cryptiles@^3.1.2:
124163
dependencies:
125164
boom "5.x.x"
126165

166+
167+
version "1.0.9"
168+
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-1.0.9.tgz#cc5449685dfb85eb11c9828acc7cb87ab5bbfcc0"
169+
127170
debug@*:
128171
version "3.1.0"
129172
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
@@ -152,6 +195,10 @@ destroy@^1.0.3, destroy@~1.0.4:
152195
version "1.0.4"
153196
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
154197

198+
dotenv@^0.4.0:
199+
version "0.4.0"
200+
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-0.4.0.tgz#f6fb351363c2d92207245c737802c9ab5ae1495a"
201+
155202
156203
version "1.1.1"
157204
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -172,6 +219,10 @@ etag@~1.8.1:
172219
version "1.8.1"
173220
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
174221

222+
events@^1.1.1:
223+
version "1.1.1"
224+
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
225+
175226
express@^4.16.2:
176227
version "4.16.2"
177228
resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
@@ -282,6 +333,10 @@ [email protected]:
282333
version "0.4.19"
283334
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
284335

336+
ieee754@^1.1.4:
337+
version "1.1.8"
338+
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
339+
285340
286341
version "2.0.3"
287342
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
@@ -302,6 +357,10 @@ is-generator-function@^1.0.3:
302357
version "1.0.6"
303358
resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.6.tgz#9e71653cd15fff341c79c4151460a131d31e9fc4"
304359

360+
isarray@^1.0.0:
361+
version "1.0.0"
362+
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
363+
305364
306365
version "2.2.1"
307366
resolved "https://registry.yarnpkg.com/isemail/-/isemail-2.2.1.tgz#0353d3d9a62951080c262c2aa0a42b8ea8e9e2a6"
@@ -316,6 +375,10 @@ [email protected], items@^2.1.1:
316375
version "2.1.1"
317376
resolved "https://registry.yarnpkg.com/items/-/items-2.1.1.tgz#8bd16d9c83b19529de5aea321acaada78364a198"
318377

378+
379+
version "0.15.0"
380+
resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217"
381+
319382
320383
version "10.6.0"
321384
resolved "https://registry.yarnpkg.com/joi/-/joi-10.6.0.tgz#52587f02d52b8b75cdb0c74f0b164a191a0e1fc2"
@@ -387,6 +450,10 @@ koa@^2.3.0:
387450
type-is "^1.5.5"
388451
vary "^1.0.0"
389452

453+
lodash@^4.0.0:
454+
version "4.17.4"
455+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
456+
390457
391458
version "0.3.0"
392459
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -482,6 +549,10 @@ proxy-addr@~2.0.2:
482549
forwarded "~0.1.2"
483550
ipaddr.js "1.5.2"
484551

552+
553+
version "1.3.2"
554+
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
555+
485556
486557
version "2.1.0"
487558
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d"
@@ -490,6 +561,10 @@ [email protected]:
490561
version "6.5.1"
491562
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
492563

564+
565+
version "0.2.0"
566+
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
567+
493568
range-parser@~1.2.0:
494569
version "1.2.0"
495570
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
@@ -507,6 +582,14 @@ [email protected]:
507582
version "5.1.1"
508583
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
509584

585+
586+
version "1.2.1"
587+
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
588+
589+
sax@>=0.6.0:
590+
version "1.2.4"
591+
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
592+
510593
511594
version "0.16.1"
512595
resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3"
@@ -599,10 +682,21 @@ [email protected], unpipe@~1.0.0:
599682
version "1.0.0"
600683
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
601684

685+
686+
version "0.10.3"
687+
resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64"
688+
dependencies:
689+
punycode "1.3.2"
690+
querystring "0.2.0"
691+
602692
603693
version "1.0.1"
604694
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
605695

696+
697+
version "3.1.0"
698+
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
699+
606700
vary@^1.0.0, vary@~1.1.2:
607701
version "1.1.2"
608702
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
@@ -619,3 +713,16 @@ [email protected]:
619713
dependencies:
620714
boom "5.x.x"
621715
hoek "4.x.x"
716+
717+
718+
version "0.4.17"
719+
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868"
720+
dependencies:
721+
sax ">=0.6.0"
722+
xmlbuilder "^4.1.0"
723+
724+
[email protected], xmlbuilder@^4.1.0:
725+
version "4.2.1"
726+
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5"
727+
dependencies:
728+
lodash "^4.0.0"

packages/graphql-playground/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "graphql-playground",
3-
"version": "1.0.36-alpha.10",
3+
"version": "1.0.36-alpha.12",
44
"main": "./lib/lib.js",
55
"typings": "./lib/lib.d.ts",
66
"description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).",

0 commit comments

Comments
 (0)