grafserv 0.0.0 → 0.0.1-0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/README.md +248 -1
  3. package/dist/accept.d.ts +8 -0
  4. package/dist/accept.d.ts.map +1 -0
  5. package/dist/accept.js +419 -0
  6. package/dist/accept.js.map +1 -0
  7. package/dist/core/base.d.ts +35 -0
  8. package/dist/core/base.d.ts.map +1 -0
  9. package/dist/core/base.js +381 -0
  10. package/dist/core/base.js.map +1 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +6 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/interfaces.d.ts +177 -0
  16. package/dist/interfaces.d.ts.map +1 -0
  17. package/dist/interfaces.js +6 -0
  18. package/dist/interfaces.js.map +1 -0
  19. package/dist/mapIterator.d.ts +2 -0
  20. package/dist/mapIterator.d.ts.map +1 -0
  21. package/dist/mapIterator.js +65 -0
  22. package/dist/mapIterator.js.map +1 -0
  23. package/dist/middleware/graphiql.d.ts +4 -0
  24. package/dist/middleware/graphiql.d.ts.map +1 -0
  25. package/dist/middleware/graphiql.js +31 -0
  26. package/dist/middleware/graphiql.js.map +1 -0
  27. package/dist/middleware/graphql.d.ts +9 -0
  28. package/dist/middleware/graphql.d.ts.map +1 -0
  29. package/dist/middleware/graphql.js +415 -0
  30. package/dist/middleware/graphql.js.map +1 -0
  31. package/dist/options.d.ts +14 -0
  32. package/dist/options.d.ts.map +1 -0
  33. package/dist/options.js +23 -0
  34. package/dist/options.js.map +1 -0
  35. package/dist/servers/express/v4/index.d.ts +20 -0
  36. package/dist/servers/express/v4/index.d.ts.map +1 -0
  37. package/dist/servers/express/v4/index.js +43 -0
  38. package/dist/servers/express/v4/index.js.map +1 -0
  39. package/dist/servers/fastify/v4/index.d.ts +21 -0
  40. package/dist/servers/fastify/v4/index.d.ts.map +1 -0
  41. package/dist/servers/fastify/v4/index.js +179 -0
  42. package/dist/servers/fastify/v4/index.js.map +1 -0
  43. package/dist/servers/koa/v2/index.d.ts +21 -0
  44. package/dist/servers/koa/v2/index.d.ts.map +1 -0
  45. package/dist/servers/koa/v2/index.js +110 -0
  46. package/dist/servers/koa/v2/index.js.map +1 -0
  47. package/dist/servers/node/index.d.ts +22 -0
  48. package/dist/servers/node/index.d.ts.map +1 -0
  49. package/dist/servers/node/index.js +173 -0
  50. package/dist/servers/node/index.js.map +1 -0
  51. package/dist/utils.d.ts +16 -0
  52. package/dist/utils.d.ts.map +1 -0
  53. package/dist/utils.js +121 -0
  54. package/dist/utils.js.map +1 -0
  55. package/package.json +76 -5
  56. package/index.js +0 -1
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleError = exports.convertHandlerResultToResult = exports.GrafservBase = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const eventemitter3_1 = tslib_1.__importDefault(require("eventemitter3"));
6
+ const grafast_1 = require("grafast");
7
+ const graphile_config_1 = require("graphile-config");
8
+ const graphql_1 = require("graphql");
9
+ const mapIterator_js_1 = require("../mapIterator.js");
10
+ const graphiql_js_1 = require("../middleware/graphiql.js");
11
+ const graphql_js_1 = require("../middleware/graphql.js");
12
+ const options_js_1 = require("../options.js");
13
+ const utils_js_1 = require("../utils.js");
14
+ function handleGraphQLError(request, dynamicOptions, e) {
15
+ const error = e instanceof graphql_1.GraphQLError
16
+ ? e
17
+ : new graphql_1.GraphQLError("Unknown error occurred", null, null, null, null, e);
18
+ // Special error handling for GraphQL route
19
+ console.error("An error occurred whilst attempting to handle the GraphQL request:");
20
+ console.dir(e);
21
+ return {
22
+ type: "graphql",
23
+ request,
24
+ dynamicOptions,
25
+ payload: { errors: [error] },
26
+ statusCode: 500,
27
+ // Fall back to application/json; this is when an unexpected error happens
28
+ // so it shouldn't be hit.
29
+ contentType: graphql_js_1.APPLICATION_JSON,
30
+ };
31
+ }
32
+ class GrafservBase {
33
+ releaseHandlers = [];
34
+ releasing = false;
35
+ dynamicOptions;
36
+ resolvedPreset;
37
+ schema;
38
+ schemaError;
39
+ eventEmitter;
40
+ initialized = false;
41
+ graphqlHandler;
42
+ graphiqlHandler;
43
+ constructor(config) {
44
+ this.eventEmitter = new eventemitter3_1.default();
45
+ this.setPreset(config.preset ?? Object.create(null));
46
+ this.schemaError = null;
47
+ this.schema = config.schema;
48
+ if ((0, grafast_1.isPromiseLike)(config.schema)) {
49
+ const promise = config.schema;
50
+ promise.then((schema) => {
51
+ this.setSchema(schema);
52
+ }, (error) => {
53
+ this.schemaError = promise;
54
+ this.schema = null;
55
+ this.eventEmitter.emit("schema:error", error);
56
+ });
57
+ }
58
+ else {
59
+ this.eventEmitter.emit("schema:ready", config.schema);
60
+ }
61
+ this.initialized = true;
62
+ this.refreshHandlers();
63
+ }
64
+ _processRequest(inRequest) {
65
+ const request = (0, utils_js_1.normalizeRequest)(inRequest);
66
+ const dynamicOptions = this.dynamicOptions;
67
+ try {
68
+ if (request.path === dynamicOptions.graphqlPath) {
69
+ return this.graphqlHandler(request, this.graphiqlHandler).catch((e) => handleGraphQLError(request, dynamicOptions, e));
70
+ }
71
+ // FIXME: handle 'HEAD' requests
72
+ if (dynamicOptions.graphiql &&
73
+ request.method === "GET" &&
74
+ request.path === dynamicOptions.graphiqlPath) {
75
+ return this.graphiqlHandler(request);
76
+ }
77
+ if (dynamicOptions.watch &&
78
+ request.method === "GET" &&
79
+ request.path === dynamicOptions.eventStreamRoute) {
80
+ const stream = this.makeStream();
81
+ return {
82
+ type: "event-stream",
83
+ request,
84
+ dynamicOptions,
85
+ payload: stream,
86
+ statusCode: 200,
87
+ };
88
+ }
89
+ // Unhandled
90
+ return null;
91
+ }
92
+ catch (e) {
93
+ console.error("Unexpected error occurred in _processRequest", e);
94
+ return {
95
+ type: "html",
96
+ request,
97
+ dynamicOptions,
98
+ status: 500,
99
+ payload: Buffer.from("ERROR", "utf8"),
100
+ };
101
+ }
102
+ }
103
+ processRequest(request) {
104
+ try {
105
+ const result = this._processRequest(request);
106
+ if ((0, grafast_1.isPromiseLike)(result)) {
107
+ return result.then(convertHandlerResultToResult, exports.handleError);
108
+ }
109
+ else {
110
+ return convertHandlerResultToResult(result);
111
+ }
112
+ }
113
+ catch (e) {
114
+ return (0, exports.handleError)(e);
115
+ }
116
+ }
117
+ getPreset() {
118
+ return this.resolvedPreset;
119
+ }
120
+ getSchema() {
121
+ return this.schema ?? this.schemaError;
122
+ }
123
+ async release() {
124
+ if (this.releasing) {
125
+ throw new Error("Release has already been called");
126
+ }
127
+ this.releasing = true;
128
+ for (let i = this.releaseHandlers.length - 1; i >= 0; i--) {
129
+ const handler = this.releaseHandlers[i];
130
+ try {
131
+ await handler();
132
+ }
133
+ catch (e) {
134
+ /* nom nom nom */
135
+ }
136
+ }
137
+ }
138
+ onRelease(cb) {
139
+ if (this.releasing) {
140
+ throw new Error("Release has already been called; cannot add more onRelease callbacks");
141
+ }
142
+ this.releaseHandlers.push(cb);
143
+ }
144
+ setPreset(newPreset) {
145
+ this.resolvedPreset = (0, graphile_config_1.resolvePresets)([newPreset]);
146
+ const newOptions = (0, options_js_1.optionsFromConfig)(this.resolvedPreset);
147
+ if (this.dynamicOptions !== newOptions) {
148
+ this.dynamicOptions = newOptions;
149
+ this.refreshHandlers();
150
+ }
151
+ }
152
+ setSchema(newSchema) {
153
+ if (!newSchema) {
154
+ throw new Error(`setSchema must be called with a GraphQL schema`);
155
+ }
156
+ if (!(0, graphql_1.isSchema)(newSchema)) {
157
+ throw new Error(`setParams called with invalid schema (is there more than one 'graphql' module loaded?)`);
158
+ }
159
+ const errors = (0, graphql_1.validateSchema)(newSchema);
160
+ if (errors.length > 0) {
161
+ throw new Error(`setParams called with invalid schema; first error: ${errors[0]}`);
162
+ }
163
+ if (this.schema !== newSchema) {
164
+ this.schemaError = null;
165
+ this.schema = newSchema;
166
+ this.eventEmitter.emit("schema:ready", newSchema);
167
+ this.refreshHandlers();
168
+ }
169
+ }
170
+ refreshHandlers() {
171
+ if (!this.initialized) {
172
+ return;
173
+ }
174
+ // TODO: this.graphqlHandler?.release()?
175
+ this.graphqlHandler = (0, graphql_js_1.makeGraphQLHandler)(this.resolvedPreset, this.dynamicOptions, this.schema);
176
+ this.graphiqlHandler = (0, graphiql_js_1.makeGraphiQLHandler)(this.resolvedPreset, this.dynamicOptions);
177
+ }
178
+ // TODO: Rename this, or make it a middleware, or something
179
+ makeStream() {
180
+ const queue = [];
181
+ let finished = false;
182
+ const bump = () => {
183
+ const next = queue.shift();
184
+ if (next) {
185
+ next.resolve({
186
+ done: false,
187
+ value: { event: "change", data: "schema" },
188
+ });
189
+ }
190
+ };
191
+ const flushQueue = (e) => {
192
+ const entries = queue.splice(0, queue.length);
193
+ for (const entry of entries) {
194
+ if (e) {
195
+ entry.reject(e);
196
+ }
197
+ else {
198
+ entry.resolve({ done: true });
199
+ }
200
+ }
201
+ };
202
+ this.eventEmitter.on("schema:ready", bump);
203
+ return {
204
+ [Symbol.asyncIterator]() {
205
+ return this;
206
+ },
207
+ next() {
208
+ if (finished) {
209
+ return Promise.resolve({
210
+ done: true,
211
+ });
212
+ }
213
+ return new Promise((resolve, reject) => {
214
+ queue.push({ resolve, reject });
215
+ });
216
+ },
217
+ return() {
218
+ finished = true;
219
+ if (queue.length) {
220
+ flushQueue();
221
+ }
222
+ return Promise.resolve({
223
+ done: true,
224
+ });
225
+ },
226
+ throw(e) {
227
+ if (queue.length) {
228
+ flushQueue(e);
229
+ }
230
+ return Promise.reject(e);
231
+ },
232
+ };
233
+ }
234
+ }
235
+ exports.GrafservBase = GrafservBase;
236
+ const END = Buffer.from("\r\n-----\r\n", "utf8");
237
+ const DIVIDE = Buffer.from(`\r\n---\r\nContent-Type: application/json\r\n\r\n`, "utf8");
238
+ function convertHandlerResultToResult(handlerResult) {
239
+ if (handlerResult === null) {
240
+ return null;
241
+ }
242
+ switch (handlerResult.type) {
243
+ case "graphql": {
244
+ const { payload, statusCode = 200, contentType, outputDataAsString, dynamicOptions, request: { preferJSON }, } = handlerResult;
245
+ (0, utils_js_1.handleErrors)(payload);
246
+ const headers = Object.create(null);
247
+ headers["Content-Type"] = contentType;
248
+ if (dynamicOptions.watch) {
249
+ headers["X-GraphQL-Event-Stream"] = dynamicOptions.eventStreamRoute;
250
+ }
251
+ if (preferJSON && !outputDataAsString) {
252
+ return {
253
+ type: "json",
254
+ statusCode,
255
+ headers,
256
+ json: payload,
257
+ };
258
+ }
259
+ else {
260
+ const buffer = Buffer.from((0, grafast_1.stringifyPayload)(payload, outputDataAsString), "utf8");
261
+ headers["Content-Length"] = buffer.length;
262
+ return {
263
+ type: "buffer",
264
+ statusCode,
265
+ headers,
266
+ buffer,
267
+ };
268
+ }
269
+ }
270
+ case "graphqlIncremental": {
271
+ const { iterator, statusCode = 200, outputDataAsString, dynamicOptions, } = handlerResult;
272
+ const headers = Object.create(null);
273
+ (headers["Content-Type"] = 'multipart/mixed; boundary="-"'),
274
+ (headers["Transfer-Encoding"] = "chunked");
275
+ if (dynamicOptions.watch) {
276
+ headers["X-GraphQL-Event-Stream"] = dynamicOptions.eventStreamRoute;
277
+ }
278
+ const bufferIterator = (0, mapIterator_js_1.mapIterator)(iterator, (payload) => {
279
+ (0, utils_js_1.handleErrors)(payload);
280
+ const payloadBuffer = Buffer.from((0, grafast_1.stringifyPayload)(payload, outputDataAsString), "utf8");
281
+ return Buffer.concat([DIVIDE, payloadBuffer]);
282
+ }, () => {
283
+ return END;
284
+ });
285
+ return {
286
+ type: "bufferStream",
287
+ headers,
288
+ statusCode,
289
+ lowLatency: true,
290
+ bufferIterator,
291
+ };
292
+ }
293
+ case "text":
294
+ case "html": {
295
+ const { payload, statusCode = 200 } = handlerResult;
296
+ const headers = Object.create(null);
297
+ if (handlerResult.type === "html") {
298
+ headers["Content-Type"] = "text/html; charset=utf-8";
299
+ }
300
+ else {
301
+ headers["Content-Type"] = "text/plain; charset=utf-8";
302
+ }
303
+ headers["Content-Length"] = payload.length;
304
+ return {
305
+ type: "buffer",
306
+ statusCode,
307
+ headers,
308
+ buffer: payload,
309
+ };
310
+ }
311
+ case "event-stream": {
312
+ const { payload: stream, statusCode = 200, request: { httpVersionMajor }, } = handlerResult;
313
+ // Making sure these options are set.
314
+ // Set headers for Server-Sent Events.
315
+ const headers = Object.create(null);
316
+ // Don't buffer EventStream in nginx
317
+ headers["X-Accel-Buffering"] = "no";
318
+ headers["Content-Type"] = "text/event-stream";
319
+ headers["Cache-Control"] = "no-cache, no-transform";
320
+ if (httpVersionMajor >= 2) {
321
+ // NOOP
322
+ }
323
+ else {
324
+ headers["Connection"] = "keep-alive";
325
+ }
326
+ // Creates a stream for the response
327
+ const event2buffer = (event) => {
328
+ let payload = "";
329
+ if (event.event) {
330
+ payload += `event: ${event.event}\n`;
331
+ }
332
+ if (event.id) {
333
+ payload += `id: ${event.id}\n`;
334
+ }
335
+ if (event.retry) {
336
+ payload += `retry: ${event.retry}\n`;
337
+ }
338
+ if (event.data != null) {
339
+ payload += `data: ${event.data.replace(/\n/g, "\ndata: ")}\n`;
340
+ }
341
+ payload += "\n";
342
+ return Buffer.from(payload, "utf8");
343
+ };
344
+ const bufferIterator = (0, mapIterator_js_1.mapIterator)(stream, event2buffer, undefined, () => event2buffer({ event: "open" }));
345
+ return {
346
+ type: "bufferStream",
347
+ statusCode,
348
+ headers,
349
+ lowLatency: true,
350
+ bufferIterator,
351
+ };
352
+ }
353
+ default: {
354
+ const never = handlerResult;
355
+ console.error(`Did not understand '${never}' passed to convertHandlerResultToResult`);
356
+ const payload = Buffer.from("Unexpected input to convertHandlerResultToResult", "utf8");
357
+ const headers = Object.create(null);
358
+ headers["Content-Type"] = "text/plain; charset=utf-8";
359
+ headers["Content-Length"] = payload.length;
360
+ return {
361
+ type: "buffer",
362
+ statusCode: 500,
363
+ headers,
364
+ buffer: payload,
365
+ };
366
+ }
367
+ }
368
+ }
369
+ exports.convertHandlerResultToResult = convertHandlerResultToResult;
370
+ const handleError = (error) => {
371
+ const statusCode = error.extensions?.statusCode ??
372
+ 500;
373
+ return {
374
+ type: "error",
375
+ statusCode,
376
+ headers: Object.create(null),
377
+ error,
378
+ };
379
+ };
380
+ exports.handleError = handleError;
381
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":";;;;AAAA,0EAAyC;AAEzC,qCAA0D;AAC1D,qDAAiD;AAEjD,qCAAiE;AAajE,sDAAgD;AAChD,2DAAgE;AAChE,yDAAgF;AAEhF,8CAAkD;AAClD,0CAA6D;AAE7D,SAAS,kBAAkB,CACzB,OAAgC,EAChC,cAAiC,EACjC,CAAQ;IAER,MAAM,KAAK,GACT,CAAC,YAAY,sBAAY;QACvB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,sBAAY,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5E,2CAA2C;IAC3C,OAAO,CAAC,KAAK,CACX,oEAAoE,CACrE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACf,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO;QACP,cAAc;QACd,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;QAC5B,UAAU,EAAE,GAAG;QACf,0EAA0E;QAC1E,0BAA0B;QAC1B,WAAW,EAAE,6BAAgB;KACb,CAAC;AACrB,CAAC;AAED,MAAa,YAAY;IACf,eAAe,GAAuC,EAAE,CAAC;IACzD,SAAS,GAAG,KAAK,CAAC;IAChB,cAAc,CAAqB;IACnC,cAAc,CAAiC;IAC/C,MAAM,CAAoD;IAC1D,WAAW,CAAoC;IAC/C,YAAY,CAGnB;IACK,WAAW,GAAG,KAAK,CAAC;IACrB,cAAc,CAAyC;IACvD,eAAe,CAA0C;IAEhE,YAAY,MAAsB;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAY,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,IAAA,uBAAa,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,OAAO,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC,CACF,CAAC;SACH;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SACvD;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,eAAe,CACrB,SAAwB;QAExB,MAAM,OAAO,GAAG,IAAA,2BAAgB,EAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI;YACF,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,WAAW,EAAE;gBAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACpE,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAC/C,CAAC;aACH;YAED,gCAAgC;YAEhC,IACE,cAAc,CAAC,QAAQ;gBACvB,OAAO,CAAC,MAAM,KAAK,KAAK;gBACxB,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,YAAY,EAC5C;gBACA,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;aACtC;YAED,IACE,cAAc,CAAC,KAAK;gBACpB,OAAO,CAAC,MAAM,KAAK,KAAK;gBACxB,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,EAChD;gBACA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjC,OAAO;oBACL,IAAI,EAAE,cAAc;oBACpB,OAAO;oBACP,cAAc;oBACd,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,GAAG;iBAChB,CAAC;aACH;YAED,YAAY;YACZ,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,OAAO;gBACP,cAAc;gBACd,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;aACrB,CAAC;SACpB;IACH,CAAC;IAES,cAAc,CACtB,OAAsB;QAEtB,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,IAAA,uBAAa,EAAC,MAAM,CAAC,EAAE;gBACzB,OAAO,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,mBAAW,CAAC,CAAC;aAC/D;iBAAM;gBACL,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;aAC7C;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAA,mBAAW,EAAC,CAAC,CAAC,CAAC;SACvB;IACH,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAY,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACzD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI;gBACF,MAAM,OAAO,EAAE,CAAC;aACjB;YAAC,OAAO,CAAC,EAAE;gBACV,iBAAiB;aAClB;SACF;IACH,CAAC;IAEM,SAAS,CAAC,EAA+B;QAC9C,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;SACH;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,SAAgC;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAA,gCAAc,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAA,8BAAiB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,EAAE;YACtC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;YACjC,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAEM,SAAS,CAAC,SAAwB;QACvC,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACnE;QACD,IAAI,CAAC,IAAA,kBAAQ,EAAC,SAAS,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;SACH;QACD,MAAM,MAAM,GAAG,IAAA,wBAAc,EAAC,SAAS,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CACb,sDAAsD,MAAM,CAAC,CAAC,CAAC,EAAE,CAClE,CAAC;SACH;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACR;QACD,wCAAwC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAA,+BAAkB,EACtC,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAA,iCAAmB,EACxC,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,CACpB,CAAC;IACJ,CAAC;IAED,2DAA2D;IACpD,UAAU;QACf,MAAM,KAAK,GAGN,EAAE,CAAC;QACR,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,OAAO,CAAC;oBACX,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC3C,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,IAAI,CAAC,EAAE;oBACL,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACjB;qBAAM;oBACL,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAuC,CAAC,CAAC;iBACpE;aACF;QACH,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO;YACL,CAAC,MAAM,CAAC,aAAa,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI;gBACF,IAAI,QAAQ,EAAE;oBACZ,OAAO,OAAO,CAAC,OAAO,CAAC;wBACrB,IAAI,EAAE,IAAI;qBAC0B,CAAC,CAAC;iBACzC;gBACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACrC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,MAAM;gBACJ,QAAQ,GAAG,IAAI,CAAC;gBAChB,IAAI,KAAK,CAAC,MAAM,EAAE;oBAChB,UAAU,EAAE,CAAC;iBACd;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC;oBACrB,IAAI,EAAE,IAAI;iBAC0B,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,CAAC,CAAC;gBACL,IAAI,KAAK,CAAC,MAAM,EAAE;oBAChB,UAAU,CAAC,CAAC,CAAC,CAAC;iBACf;gBACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;SACF,CAAC;IACJ,CAAC;CACF;AAnPD,oCAmPC;AAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,mDAAmD,EACnD,MAAM,CACP,CAAC;AAEF,SAAgB,4BAA4B,CAC1C,aAAmC;IAEnC,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IACD,QAAQ,aAAa,CAAC,IAAI,EAAE;QAC1B,KAAK,SAAS,CAAC,CAAC;YACd,MAAM,EACJ,OAAO,EACP,UAAU,GAAG,GAAG,EAChB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,OAAO,EAAE,EAAE,UAAU,EAAE,GACxB,GAAG,aAAa,CAAC;YAElB,IAAA,uBAAY,EAAC,OAAO,CAAC,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;YACtC,IAAI,cAAc,CAAC,KAAK,EAAE;gBACxB,OAAO,CAAC,wBAAwB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC;aACrE;YACD,IAAI,UAAU,IAAI,CAAC,kBAAkB,EAAE;gBACrC,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,UAAU;oBACV,OAAO;oBACP,IAAI,EAAE,OAAc;iBACrB,CAAC;aACH;iBAAM;gBACL,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,IAAA,0BAAgB,EAAC,OAAc,EAAE,kBAAkB,CAAC,EACpD,MAAM,CACP,CAAC;gBACF,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1C,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU;oBACV,OAAO;oBACP,MAAM;iBACP,CAAC;aACH;SACF;QACD,KAAK,oBAAoB,CAAC,CAAC;YACzB,MAAM,EACJ,QAAQ,EACR,UAAU,GAAG,GAAG,EAChB,kBAAkB,EAClB,cAAc,GACf,GAAG,aAAa,CAAC;YAClB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,+BAA+B,CAAC;gBACzD,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,CAAC;YAC7C,IAAI,cAAc,CAAC,KAAK,EAAE;gBACxB,OAAO,CAAC,wBAAwB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC;aACrE;YAED,MAAM,cAAc,GAAG,IAAA,4BAAW,EAChC,QAAQ,EACR,CAAC,OAAO,EAAE,EAAE;gBACV,IAAA,uBAAY,EAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAC/B,IAAA,0BAAgB,EAAC,OAAc,EAAE,kBAAkB,CAAC,EACpD,MAAM,CACP,CAAC;gBACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;YAChD,CAAC,EACD,GAAG,EAAE;gBACH,OAAO,GAAG,CAAC;YACb,CAAC,CACF,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,OAAO;gBACP,UAAU;gBACV,UAAU,EAAE,IAAI;gBAChB,cAAc;aACf,CAAC;SACH;QACD,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,aAAa,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE;gBACjC,OAAO,CAAC,cAAc,CAAC,GAAG,0BAA0B,CAAC;aACtD;iBAAM;gBACL,OAAO,CAAC,cAAc,CAAC,GAAG,2BAA2B,CAAC;aACvD;YACD,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3C,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU;gBACV,OAAO;gBACP,MAAM,EAAE,OAAO;aACA,CAAC;SACnB;QACD,KAAK,cAAc,CAAC,CAAC;YACnB,MAAM,EACJ,OAAO,EAAE,MAAM,EACf,UAAU,GAAG,GAAG,EAChB,OAAO,EAAE,EAAE,gBAAgB,EAAE,GAC9B,GAAG,aAAa,CAAC;YAElB,qCAAqC;YAErC,sCAAsC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,oCAAoC;YACpC,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;YACpC,OAAO,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC;YAC9C,OAAO,CAAC,eAAe,CAAC,GAAG,wBAAwB,CAAC;YACpD,IAAI,gBAAgB,IAAI,CAAC,EAAE;gBACzB,OAAO;aACR;iBAAM;gBACL,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;aACtC;YAED,oCAAoC;YACpC,MAAM,YAAY,GAAG,CAAC,KAAuB,EAAU,EAAE;gBACvD,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,KAAK,CAAC,KAAK,EAAE;oBACf,OAAO,IAAI,UAAU,KAAK,CAAC,KAAK,IAAI,CAAC;iBACtC;gBACD,IAAI,KAAK,CAAC,EAAE,EAAE;oBACZ,OAAO,IAAI,OAAO,KAAK,CAAC,EAAE,IAAI,CAAC;iBAChC;gBACD,IAAI,KAAK,CAAC,KAAK,EAAE;oBACf,OAAO,IAAI,UAAU,KAAK,CAAC,KAAK,IAAI,CAAC;iBACtC;gBACD,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;oBACtB,OAAO,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;iBAC/D;gBACD,OAAO,IAAI,IAAI,CAAC;gBAChB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,IAAA,4BAAW,EAChC,MAAM,EACN,YAAY,EACZ,SAAS,EACT,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACtC,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,UAAU;gBACV,OAAO;gBACP,UAAU,EAAE,IAAI;gBAChB,cAAc;aACf,CAAC;SACH;QACD,OAAO,CAAC,CAAC;YACP,MAAM,KAAK,GAAU,aAAa,CAAC;YACnC,OAAO,CAAC,KAAK,CACX,uBAAuB,KAAK,0CAA0C,CACvE,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,kDAAkD,EAClD,MAAM,CACP,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,cAAc,CAAC,GAAG,2BAA2B,CAAC;YACtD,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3C,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,GAAG;gBACf,OAAO;gBACP,MAAM,EAAE,OAAO;aACA,CAAC;SACnB;KACF;AACH,CAAC;AA7KD,oEA6KC;AAEM,MAAM,WAAW,GAAG,CAAC,KAAY,EAAe,EAAE;IACvD,MAAM,UAAU,GACZ,KAAsB,CAAC,UAAU,EAAE,UAAiC;QACtE,GAAG,CAAC;IACN,OAAO;QACL,IAAI,EAAE,OAAO;QACb,UAAU;QACV,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB"}
@@ -0,0 +1,3 @@
1
+ export { GrafservBase } from "./core/base.js";
2
+ export { GrafservConfig } from "./interfaces.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrafservBase = void 0;
4
+ var base_js_1 = require("./core/base.js");
5
+ Object.defineProperty(exports, "GrafservBase", { enumerable: true, get: function () { return base_js_1.GrafservBase; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAA8C;AAArC,uGAAA,YAAY,OAAA"}
@@ -0,0 +1,177 @@
1
+ /// <reference types="node" />
2
+ import "graphile-config";
3
+ import type { PromiseOrDirect } from "grafast";
4
+ import type { AsyncExecutionResult, ExecutionResult, GraphQLSchema } from "graphql";
5
+ import type { OptionsFromConfig } from "./options";
6
+ export declare type ContextCallback = (graphqlRequestContext: GraphileConfig.GraphQLRequestContext) => object;
7
+ export interface GrafservConfig {
8
+ schema: GraphQLSchema | PromiseLike<GraphQLSchema>;
9
+ preset?: GraphileConfig.Preset;
10
+ }
11
+ export interface ServerOptions {
12
+ /** Port number to listen on */
13
+ port?: number;
14
+ /** Host to listen on */
15
+ host?: string;
16
+ /** The path at which GraphQL will be available; usually /graphql */
17
+ graphqlPath?: string;
18
+ /** The path at which the GraphQL event stream would be made available; usually /graphql/stream */
19
+ eventStreamRoute?: string;
20
+ /** If true, allow GraphQL over GET requests. This has security ramifications, exercise caution. */
21
+ graphqlOverGET?: boolean;
22
+ graphiql?: boolean;
23
+ /** If true, then we will render GraphiQL on GET requests to the /graphql endpoint */
24
+ graphiqlOnGraphQLGET?: boolean;
25
+ /** The path at which GraphiQL will be available; usually / */
26
+ graphiqlPath?: string;
27
+ /** Set true to enable watch mode */
28
+ watch?: boolean;
29
+ /** The length, in bytes, for the largest request body that the server will accept */
30
+ maxRequestLength?: number;
31
+ /** How long should we wait for a schema promise to resolve before sending a failure to the client? */
32
+ schemaWaitTime?: number;
33
+ /**
34
+ * Use grafast 'string' optimization - response will be partially stringified
35
+ * already, use `stringifyPayload` before sending to the user
36
+ *
37
+ * @remarks
38
+ *
39
+ * This is a `server` option rather than a `grafast` option because the
40
+ * server is responsible for stringifying the body before sending it to the
41
+ * user, via `stringifyPayload`. If we were to make this a `grafast` option
42
+ * then everything using grafast would be affected by it, and code expecting
43
+ * objects would break.
44
+ */
45
+ outputDataAsString?: boolean;
46
+ }
47
+ declare global {
48
+ namespace GraphileConfig {
49
+ /**
50
+ * Details about the incoming GraphQL request - e.g. if it was sent over an
51
+ * HTTP request, the request itself so headers can be interrogated.
52
+ *
53
+ * It's anticipated this will be expanded via declaration merging, e.g. if
54
+ * your server is Koa then a `koaCtx` might be added.
55
+ */
56
+ interface GraphQLRequestContext {
57
+ http?: NormalizedRequestDigest;
58
+ }
59
+ interface Preset {
60
+ server?: ServerOptions;
61
+ }
62
+ }
63
+ }
64
+ export interface GrafservBodyBuffer {
65
+ type: "buffer";
66
+ buffer: Buffer;
67
+ }
68
+ export interface GrafservBodyText {
69
+ type: "text";
70
+ text: string;
71
+ }
72
+ export interface GrafservBodyJSON {
73
+ type: "json";
74
+ json: JSONValue;
75
+ }
76
+ export declare type GrafservBody = GrafservBodyBuffer | GrafservBodyText | GrafservBodyJSON;
77
+ export declare const $$normalizedHeaders: unique symbol;
78
+ export interface RequestDigest {
79
+ method: "HEAD" | "GET" | "POST" | string;
80
+ httpVersionMajor: number;
81
+ httpVersionMinor: number;
82
+ isSecure: boolean;
83
+ path: string;
84
+ headers: Record<string, string>;
85
+ getQueryParams: () => PromiseOrDirect<Record<string, string | string[]>>;
86
+ getBody(): PromiseOrDirect<GrafservBody>;
87
+ requestContext: Partial<GraphileConfig.GraphQLRequestContext>;
88
+ preferJSON?: boolean;
89
+ }
90
+ export interface NormalizedRequestDigest extends RequestDigest {
91
+ preferJSON: boolean;
92
+ /**
93
+ * As 'headers', but with the keys lowercased
94
+ * @internal
95
+ */
96
+ [$$normalizedHeaders]: Record<string, string>;
97
+ getHeader(name: string): string | undefined;
98
+ /** @deprecated use getHeader unless the original case is essential. */
99
+ headers: Record<string, string>;
100
+ }
101
+ interface IHandlerResult {
102
+ type: string;
103
+ request: NormalizedRequestDigest;
104
+ dynamicOptions: OptionsFromConfig;
105
+ statusCode?: number;
106
+ }
107
+ export interface HTMLHandlerResult extends IHandlerResult {
108
+ type: "html";
109
+ payload: Buffer;
110
+ }
111
+ export interface TextHandlerResult extends IHandlerResult {
112
+ type: "text";
113
+ payload: Buffer;
114
+ }
115
+ export interface GraphQLHandlerResult extends IHandlerResult {
116
+ type: "graphql";
117
+ contentType: string;
118
+ payload: ExecutionResult;
119
+ outputDataAsString?: boolean;
120
+ }
121
+ /** @see {@link https://github.com/glasser/graphql-over-http/blob/dac9638459bb17dd3ade889334fc2fadee9d11e5/rfcs/IncrementalDelivery.md} */
122
+ export interface GraphQLIncrementalHandlerResult extends IHandlerResult {
123
+ type: "graphqlIncremental";
124
+ iterator: AsyncGenerator<AsyncExecutionResult, void, undefined>;
125
+ outputDataAsString?: boolean;
126
+ }
127
+ export interface EventStreamEvent {
128
+ /** The name of the event. Use simple names. Don't put newlines in it! */
129
+ event: string;
130
+ /** The data for this event. We'll automatically split this on newlines for you */
131
+ data?: string;
132
+ id?: string;
133
+ /** integer number of milliseconds indicating how long to wait before reconnecting if connection is lost */
134
+ retry?: number;
135
+ }
136
+ export interface EventStreamHeandlerResult extends IHandlerResult {
137
+ type: "event-stream";
138
+ payload: AsyncIterable<EventStreamEvent>;
139
+ }
140
+ export declare type HandlerResult = HTMLHandlerResult | GraphQLHandlerResult | GraphQLIncrementalHandlerResult | TextHandlerResult | EventStreamHeandlerResult;
141
+ export declare type SchemaChangeEvent = {
142
+ event: "change";
143
+ data: "schema";
144
+ };
145
+ export declare type JSONValue = null | boolean | number | string | JSONValue[] | JSONObject;
146
+ export interface JSONObject {
147
+ [key: string]: JSONValue;
148
+ }
149
+ export interface ErrorResult {
150
+ type: "error";
151
+ statusCode: number;
152
+ headers: Record<string, string>;
153
+ error: Error;
154
+ }
155
+ export interface BufferResult {
156
+ type: "buffer";
157
+ statusCode: number;
158
+ headers: Record<string, string>;
159
+ buffer: Buffer;
160
+ }
161
+ export interface JSONResult {
162
+ type: "json";
163
+ statusCode: number;
164
+ headers: Record<string, string>;
165
+ json: JSONValue;
166
+ }
167
+ export interface BufferStreamResult {
168
+ type: "bufferStream";
169
+ statusCode: number;
170
+ headers: Record<string, string>;
171
+ /** If true, setNoDelay, etc */
172
+ lowLatency: boolean;
173
+ bufferIterator: AsyncGenerator<Buffer, void, undefined>;
174
+ }
175
+ export declare type Result = ErrorResult | BufferResult | JSONResult | BufferStreamResult;
176
+ export {};
177
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$$normalizedHeaders = void 0;
4
+ require("graphile-config");
5
+ exports.$$normalizedHeaders = Symbol("normalizedHeaders");
6
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAwGZ,QAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function mapIterator<T, U>(iterable: AsyncIterable<T>, cb: (payload: T) => U, end?: () => U, initial?: () => U): AsyncGenerator<U>;
2
+ //# sourceMappingURL=mapIterator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapIterator.d.ts","sourceRoot":"","sources":["../src/mapIterator.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC9B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EACrB,GAAG,CAAC,EAAE,MAAM,CAAC,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,GAChB,cAAc,CAAC,CAAC,CAAC,CA0DnB"}