grafserv 0.1.1-beta.2 → 0.1.1-beta.21

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 (52) hide show
  1. package/CHANGELOG.md +364 -0
  2. package/README.md +3 -5
  3. package/dist/core/base.d.ts +14 -7
  4. package/dist/core/base.d.ts.map +1 -1
  5. package/dist/core/base.js +271 -38
  6. package/dist/core/base.js.map +1 -1
  7. package/dist/envelop/index.d.ts +19 -0
  8. package/dist/envelop/index.d.ts.map +1 -0
  9. package/dist/envelop/index.js +71 -0
  10. package/dist/envelop/index.js.map +1 -0
  11. package/dist/hooks.d.ts +6 -2
  12. package/dist/hooks.d.ts.map +1 -1
  13. package/dist/hooks.js +64 -10
  14. package/dist/hooks.js.map +1 -1
  15. package/dist/index.d.ts +118 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/interfaces.d.ts +38 -100
  20. package/dist/interfaces.d.ts.map +1 -1
  21. package/dist/interfaces.js.map +1 -1
  22. package/dist/middleware/graphiql.d.ts +3 -1
  23. package/dist/middleware/graphiql.d.ts.map +1 -1
  24. package/dist/middleware/graphiql.js +8 -5
  25. package/dist/middleware/graphiql.js.map +1 -1
  26. package/dist/middleware/graphql.d.ts +4 -4
  27. package/dist/middleware/graphql.d.ts.map +1 -1
  28. package/dist/middleware/graphql.js +43 -69
  29. package/dist/middleware/graphql.js.map +1 -1
  30. package/dist/options.d.ts +4 -2
  31. package/dist/options.d.ts.map +1 -1
  32. package/dist/options.js +7 -4
  33. package/dist/options.js.map +1 -1
  34. package/dist/servers/fastify/v4/index.d.ts.map +1 -1
  35. package/dist/servers/fastify/v4/index.js +33 -27
  36. package/dist/servers/fastify/v4/index.js.map +1 -1
  37. package/dist/servers/h3/v1/index.d.ts +2 -10
  38. package/dist/servers/h3/v1/index.d.ts.map +1 -1
  39. package/dist/servers/h3/v1/index.js +39 -41
  40. package/dist/servers/h3/v1/index.js.map +1 -1
  41. package/dist/servers/node/index.d.ts.map +1 -1
  42. package/dist/servers/node/index.js +3 -0
  43. package/dist/servers/node/index.js.map +1 -1
  44. package/dist/utils.d.ts +7 -2
  45. package/dist/utils.d.ts.map +1 -1
  46. package/dist/utils.js +90 -98
  47. package/dist/utils.js.map +1 -1
  48. package/dist/version.d.ts +2 -0
  49. package/dist/version.d.ts.map +1 -0
  50. package/dist/version.js +6 -0
  51. package/dist/version.js.map +1 -0
  52. package/package.json +23 -9
package/dist/core/base.js CHANGED
@@ -6,19 +6,124 @@ const eventemitter3_1 = tslib_1.__importDefault(require("eventemitter3"));
6
6
  const grafast_1 = require("grafast");
7
7
  const graphql = tslib_1.__importStar(require("grafast/graphql"));
8
8
  const graphile_config_1 = require("graphile-config");
9
+ const hooks_js_1 = require("../hooks.js");
9
10
  const mapIterator_js_1 = require("../mapIterator.js");
10
11
  const graphiql_js_1 = require("../middleware/graphiql.js");
11
12
  const graphql_js_1 = require("../middleware/graphql.js");
12
13
  const options_js_1 = require("../options.js");
13
14
  const utils_js_1 = require("../utils.js");
15
+ const failedToBuildHandlersError = new graphql.GraphQLError("Unknown error occurred.");
14
16
  const { isSchema, validateSchema } = graphql;
15
17
  class GrafservBase {
18
+ getExecutionConfig(_ctx) {
19
+ throw new Error("Overwritten in constructor");
20
+ }
16
21
  constructor(config) {
17
22
  this.releaseHandlers = [];
18
23
  this.releasing = false;
19
24
  this.initialized = false;
25
+ this._settingPreset = false;
26
+ this.waitForGraphqlHandler = function (...args) {
27
+ const [request] = args;
28
+ const deferred = (0, grafast_1.defer)();
29
+ const { dynamicOptions } = this;
30
+ const onReady = () => {
31
+ this.eventEmitter.off("dynamicOptions:ready", onReady);
32
+ this.eventEmitter.off("dynamicOptions:error", onError);
33
+ Promise.resolve()
34
+ .then(() => this.graphqlHandler(...args))
35
+ .then(deferred.resolve, deferred.reject);
36
+ };
37
+ const onError = (e) => {
38
+ this.eventEmitter.off("dynamicOptions:ready", onReady);
39
+ this.eventEmitter.off("dynamicOptions:error", onError);
40
+ const graphqlError = new graphql.GraphQLError("Unknown error occurred", null, null, null, null, e);
41
+ deferred.resolve({
42
+ type: "graphql",
43
+ request,
44
+ dynamicOptions,
45
+ payload: { errors: [graphqlError] },
46
+ statusCode: graphqlError.extensions?.statusCode ?? 503,
47
+ // Fall back to application/json; this is when an unexpected error happens
48
+ // so it shouldn't be hit.
49
+ contentType: graphql_js_1.APPLICATION_JSON,
50
+ });
51
+ };
52
+ this.eventEmitter.on("dynamicOptions:ready", onReady);
53
+ this.eventEmitter.on("dynamicOptions:error", onError);
54
+ setTimeout(onError, 5000, new Error("Server initialization timed out"));
55
+ return Promise.resolve(deferred);
56
+ };
57
+ this.waitForGraphiqlHandler = function (...args) {
58
+ const [request] = args;
59
+ const { dynamicOptions } = this;
60
+ const deferred = (0, grafast_1.defer)();
61
+ const onReady = () => {
62
+ this.eventEmitter.off("dynamicOptions:ready", onReady);
63
+ this.eventEmitter.off("dynamicOptions:error", onError);
64
+ Promise.resolve()
65
+ .then(() => this.graphiqlHandler(...args))
66
+ .then(deferred.resolve, deferred.reject);
67
+ };
68
+ const onError = (e) => {
69
+ this.eventEmitter.off("dynamicOptions:ready", onReady);
70
+ this.eventEmitter.off("dynamicOptions:error", onError);
71
+ const graphqlError = new graphql.GraphQLError("Unknown error occurred", null, null, null, null, e);
72
+ // TODO: this should be an HTML response
73
+ deferred.resolve({
74
+ type: "graphql",
75
+ request,
76
+ dynamicOptions,
77
+ payload: { errors: [graphqlError] },
78
+ statusCode: graphqlError.extensions?.statusCode ?? 503,
79
+ // Fall back to application/json; this is when an unexpected error happens
80
+ // so it shouldn't be hit.
81
+ contentType: graphql_js_1.APPLICATION_JSON,
82
+ });
83
+ };
84
+ this.eventEmitter.on("dynamicOptions:ready", onReady);
85
+ this.eventEmitter.on("dynamicOptions:error", onError);
86
+ setTimeout(onError, 5000, new Error("Server initialization timed out"));
87
+ return Promise.resolve(deferred);
88
+ };
89
+ this.failedGraphqlHandler = function (...args) {
90
+ const [request] = args;
91
+ const { dynamicOptions } = this;
92
+ return {
93
+ type: "graphql",
94
+ request,
95
+ dynamicOptions,
96
+ payload: { errors: [failedToBuildHandlersError] },
97
+ statusCode: 503,
98
+ // Fall back to application/json; this is when an unexpected error happens
99
+ // so it shouldn't be hit.
100
+ contentType: graphql_js_1.APPLICATION_JSON,
101
+ };
102
+ };
103
+ this.failedGraphiqlHandler = function (...args) {
104
+ const [request] = args;
105
+ const { dynamicOptions } = this;
106
+ return {
107
+ type: "graphql",
108
+ request,
109
+ dynamicOptions,
110
+ payload: { errors: [failedToBuildHandlersError] },
111
+ statusCode: 503,
112
+ // Fall back to application/json; this is when an unexpected error happens
113
+ // so it shouldn't be hit.
114
+ contentType: graphql_js_1.APPLICATION_JSON,
115
+ };
116
+ };
20
117
  this.eventEmitter = new eventemitter3_1.default();
21
- this.setPreset(config.preset ?? Object.create(null));
118
+ this.resolvedPreset = (0, graphile_config_1.resolvePreset)(config.preset ? config.preset : {});
119
+ this.dynamicOptions = {
120
+ validationRules: [...graphql.specifiedRules],
121
+ getExecutionConfig: defaultMakeGetExecutionConfig(),
122
+ ...(0, options_js_1.optionsFromConfig)(this.resolvedPreset),
123
+ };
124
+ this.getExecutionConfig = this.dynamicOptions.getExecutionConfig;
125
+ this.middleware = (0, hooks_js_1.getGrafservMiddleware)(this.resolvedPreset);
126
+ this.grafastMiddleware = (0, grafast_1.getGrafastMiddleware)(this.resolvedPreset);
22
127
  this.schemaError = null;
23
128
  this.schema = config.schema;
24
129
  if ((0, grafast_1.isPromiseLike)(config.schema)) {
@@ -34,11 +139,16 @@ class GrafservBase {
34
139
  else {
35
140
  this.eventEmitter.emit("schema:ready", config.schema);
36
141
  }
37
- this.initialized = true;
38
- this.refreshHandlers();
142
+ this.graphqlHandler = this.waitForGraphqlHandler;
143
+ this.graphiqlHandler = this.waitForGraphiqlHandler;
144
+ this.setPreset(this.resolvedPreset);
39
145
  }
146
+ /** @internal */
40
147
  _processRequest(inRequest) {
41
148
  const request = (0, utils_js_1.normalizeRequest)(inRequest);
149
+ if (!this.dynamicOptions) {
150
+ throw new Error(`GrafservInternalError<1377f225-31b7-4a81-a56e-a28e18a19899>: Attempted to process request prematurely`);
151
+ }
42
152
  const dynamicOptions = this.dynamicOptions;
43
153
  const forceCORS = !!this.resolvedPreset.grafserv?.dangerouslyAllowAllCORSRequests &&
44
154
  request.method === "OPTIONS";
@@ -52,14 +162,14 @@ class GrafservBase {
52
162
  request.method === "GET" &&
53
163
  request.path === dynamicOptions.graphiqlPath) {
54
164
  if (forceCORS)
55
- return optionsResponse(request, this.dynamicOptions);
165
+ return optionsResponse(request, dynamicOptions);
56
166
  return this.graphiqlHandler(request);
57
167
  }
58
168
  if (dynamicOptions.watch &&
59
169
  request.method === "GET" &&
60
170
  request.path === dynamicOptions.eventStreamPath) {
61
171
  if (forceCORS)
62
- return optionsResponse(request, this.dynamicOptions);
172
+ return optionsResponse(request, dynamicOptions);
63
173
  const stream = this.makeStream();
64
174
  return {
65
175
  type: "event-stream",
@@ -83,31 +193,16 @@ class GrafservBase {
83
193
  };
84
194
  }
85
195
  }
86
- processRequest(request) {
87
- let returnValue;
88
- try {
89
- const result = this._processRequest(request);
90
- if ((0, grafast_1.isPromiseLike)(result)) {
91
- returnValue = result.then(convertHandlerResultToResult, exports.convertErrorToErrorResult);
92
- }
93
- else {
94
- returnValue = convertHandlerResultToResult(result);
95
- }
96
- }
97
- catch (e) {
98
- returnValue = (0, exports.convertErrorToErrorResult)(e);
99
- }
100
- if (this.resolvedPreset.grafserv?.dangerouslyAllowAllCORSRequests) {
101
- if ((0, grafast_1.isPromiseLike)(returnValue)) {
102
- return returnValue.then(dangerousCorsWrap);
103
- }
104
- else {
105
- return dangerousCorsWrap(returnValue);
106
- }
107
- }
108
- else {
109
- return returnValue;
110
- }
196
+ processRequest(requestDigest) {
197
+ const { resolvedPreset } = this;
198
+ const event = {
199
+ resolvedPreset,
200
+ requestDigest,
201
+ instance: this,
202
+ };
203
+ return this.middleware != null
204
+ ? this.middleware.run("processRequest", event, processRequestWithEvent)
205
+ : processRequestWithEvent(event);
111
206
  }
112
207
  getPreset() {
113
208
  return this.resolvedPreset;
@@ -137,12 +232,46 @@ class GrafservBase {
137
232
  this.releaseHandlers.push(cb);
138
233
  }
139
234
  setPreset(newPreset) {
140
- this.resolvedPreset = (0, graphile_config_1.resolvePresets)([newPreset]);
141
- const newOptions = (0, options_js_1.optionsFromConfig)(this.resolvedPreset);
142
- if (this.dynamicOptions !== newOptions) {
143
- this.dynamicOptions = newOptions;
144
- this.refreshHandlers();
235
+ if (this._settingPreset) {
236
+ throw new Error(`Setting a preset is currently in progress; please wait for it to complete.`);
145
237
  }
238
+ this._settingPreset = true;
239
+ const resolvedPreset = (0, graphile_config_1.resolvePreset)(newPreset);
240
+ const middleware = (0, hooks_js_1.getGrafservMiddleware)(this.resolvedPreset);
241
+ const grafastMiddleware = (0, grafast_1.getGrafastMiddleware)(this.resolvedPreset);
242
+ // Note: this gets directly mutated
243
+ const dynamicOptions = {
244
+ validationRules: [...graphql.specifiedRules],
245
+ getExecutionConfig: defaultMakeGetExecutionConfig(),
246
+ ...(0, options_js_1.optionsFromConfig)(resolvedPreset),
247
+ };
248
+ const storeDynamicOptions = (dynamicOptions) => {
249
+ const { resolvedPreset } = dynamicOptions;
250
+ // Overwrite all the `this.*` properties at once
251
+ this.resolvedPreset = resolvedPreset;
252
+ this.middleware = middleware;
253
+ this.grafastMiddleware = grafastMiddleware;
254
+ this.dynamicOptions = dynamicOptions;
255
+ this.initialized = true;
256
+ // ENHANCE: this.graphqlHandler?.release()?
257
+ this.refreshHandlers();
258
+ this.getExecutionConfig = dynamicOptions.getExecutionConfig;
259
+ // MUST come after the handlers have been refreshed, otherwise we'll
260
+ // get infinite loops
261
+ this.eventEmitter.emit("dynamicOptions:ready", {});
262
+ };
263
+ return (new Promise((resolve) => resolve(middleware != null
264
+ ? middleware.run("setPreset", dynamicOptions, storeDynamicOptions)
265
+ : storeDynamicOptions(dynamicOptions)))
266
+ .then(null, (e) => {
267
+ this.graphqlHandler = this.failedGraphqlHandler;
268
+ this.graphiqlHandler = this.failedGraphiqlHandler;
269
+ this.eventEmitter.emit("dynamicOptions:error", e);
270
+ })
271
+ // Finally:
272
+ .then(() => {
273
+ this._settingPreset = false;
274
+ }));
146
275
  }
147
276
  setSchema(newSchema) {
148
277
  if (!newSchema) {
@@ -164,11 +293,11 @@ class GrafservBase {
164
293
  }
165
294
  refreshHandlers() {
166
295
  if (!this.initialized) {
296
+ // This will be handled once `setPreset` completes
167
297
  return;
168
298
  }
169
- // ENHANCE: this.graphqlHandler?.release()?
170
- this.graphqlHandler = (0, graphql_js_1.makeGraphQLHandler)(this.resolvedPreset, this.dynamicOptions, this.schema);
171
- this.graphiqlHandler = (0, graphiql_js_1.makeGraphiQLHandler)(this.resolvedPreset, this.dynamicOptions);
299
+ this.graphqlHandler = (0, graphql_js_1.makeGraphQLHandler)(this);
300
+ this.graphiqlHandler = (0, graphiql_js_1.makeGraphiQLHandler)(this.resolvedPreset, this.middleware, this.dynamicOptions);
172
301
  }
173
302
  // TODO: Rename this, or make it a middleware, or something
174
303
  makeStream() {
@@ -228,6 +357,83 @@ class GrafservBase {
228
357
  }
229
358
  }
230
359
  exports.GrafservBase = GrafservBase;
360
+ function defaultMakeGetExecutionConfig() {
361
+ let latestSchema;
362
+ let latestSchemaOrPromise;
363
+ let latestParseAndValidate;
364
+ let schemaPrepare = null;
365
+ return function getExecutionConfig() {
366
+ // Get up to date schema, in case we're in watch mode
367
+ const schemaOrPromise = this.getSchema();
368
+ const { resolvedPreset, dynamicOptions } = this;
369
+ if (schemaOrPromise !== latestSchemaOrPromise) {
370
+ latestSchemaOrPromise = schemaOrPromise;
371
+ if ("then" in schemaOrPromise) {
372
+ schemaPrepare = (async () => {
373
+ latestSchema = await schemaOrPromise;
374
+ latestSchemaOrPromise = schemaOrPromise;
375
+ latestParseAndValidate = (0, graphql_js_1.makeParseAndValidateFunction)(latestSchema, resolvedPreset, dynamicOptions);
376
+ schemaPrepare = null;
377
+ return true;
378
+ })();
379
+ }
380
+ else {
381
+ if (latestSchema === schemaOrPromise) {
382
+ // No action necessary
383
+ }
384
+ else {
385
+ latestSchema = schemaOrPromise;
386
+ latestParseAndValidate = (0, graphql_js_1.makeParseAndValidateFunction)(latestSchema, resolvedPreset, dynamicOptions);
387
+ }
388
+ }
389
+ }
390
+ if (schemaPrepare !== null) {
391
+ const sleeper = (0, utils_js_1.sleep)(dynamicOptions.schemaWaitTime);
392
+ const schemaReadyPromise = Promise.race([schemaPrepare, sleeper.promise]);
393
+ return schemaReadyPromise.then((schemaReady) => {
394
+ sleeper.release();
395
+ if (schemaReady !== true) {
396
+ // Handle missing schema
397
+ throw new Error(`Schema isn't ready`);
398
+ }
399
+ return {
400
+ schema: latestSchema,
401
+ parseAndValidate: latestParseAndValidate,
402
+ resolvedPreset,
403
+ execute: grafast_1.execute,
404
+ subscribe: grafast_1.subscribe,
405
+ contextValue: Object.create(null),
406
+ };
407
+ });
408
+ }
409
+ /*
410
+ if (schemaOrPromise == null) {
411
+ const err = Promise.reject(
412
+ new GraphQLError(
413
+ "The schema is currently unavailable",
414
+ null,
415
+ null,
416
+ null,
417
+ null,
418
+ null,
419
+ {
420
+ statusCode: 503,
421
+ },
422
+ ),
423
+ );
424
+ return () => err;
425
+ }
426
+ */
427
+ return {
428
+ schema: latestSchema,
429
+ parseAndValidate: latestParseAndValidate,
430
+ resolvedPreset,
431
+ execute: grafast_1.execute,
432
+ subscribe: grafast_1.subscribe,
433
+ contextValue: Object.create(null),
434
+ };
435
+ };
436
+ }
231
437
  const END = Buffer.from("\r\n-----\r\n", "utf8");
232
438
  const DIVIDE = Buffer.from(`\r\n---\r\nContent-Type: application/json\r\n\r\n`, "utf8");
233
439
  function convertHandlerResultToResult(handlerResult) {
@@ -398,4 +604,31 @@ function optionsResponse(request, dynamicOptions) {
398
604
  statusCode: 204,
399
605
  };
400
606
  }
607
+ function processRequestWithEvent(event) {
608
+ const { requestDigest: request, instance } = event;
609
+ let returnValue;
610
+ try {
611
+ const result = instance._processRequest(request);
612
+ if ((0, grafast_1.isPromiseLike)(result)) {
613
+ returnValue = result.then(convertHandlerResultToResult, exports.convertErrorToErrorResult);
614
+ }
615
+ else {
616
+ returnValue = convertHandlerResultToResult(result);
617
+ }
618
+ }
619
+ catch (e) {
620
+ returnValue = (0, exports.convertErrorToErrorResult)(e);
621
+ }
622
+ if (instance.resolvedPreset.grafserv?.dangerouslyAllowAllCORSRequests) {
623
+ if ((0, grafast_1.isPromiseLike)(returnValue)) {
624
+ return returnValue.then(dangerousCorsWrap);
625
+ }
626
+ else {
627
+ return dangerousCorsWrap(returnValue);
628
+ }
629
+ }
630
+ else {
631
+ return returnValue;
632
+ }
633
+ }
401
634
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type GetEnvelopedFn } from "@envelop/core";
2
+ import type { GraphileConfig } from "graphile-config";
3
+ declare global {
4
+ namespace GraphileConfig {
5
+ interface GrafservOptions {
6
+ getEnveloped?: GetEnvelopedFn<any>;
7
+ }
8
+ }
9
+ }
10
+ declare global {
11
+ namespace GraphileConfig {
12
+ interface Plugins {
13
+ GrafservEnvelopPlugin: true;
14
+ }
15
+ }
16
+ }
17
+ export declare const GrafservEnvelopPlugin: GraphileConfig.Plugin;
18
+ export declare const GrafservEnvelopPreset: GraphileConfig.Preset;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/envelop/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKtD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,cAAc,CAAC;QACvB,UAAU,eAAe;YACvB,YAAY,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;SACpC;KACF;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,cAAc,CAAC;QACvB,UAAU,OAAO;YACf,qBAAqB,EAAE,IAAI,CAAC;SAC7B;KACF;CACF;AAED,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MA+DlD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MAQlD,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrafservEnvelopPreset = exports.GrafservEnvelopPlugin = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@envelop/core");
6
+ const graphql = tslib_1.__importStar(require("graphql"));
7
+ const version_js_1 = require("../version.js");
8
+ exports.GrafservEnvelopPlugin = {
9
+ name: "GrafservEnvelopPlugin",
10
+ version: version_js_1.version,
11
+ grafserv: {
12
+ middleware: {
13
+ setPreset(next, event) {
14
+ const { resolvedPreset } = event;
15
+ const userGetEnveloped = resolvedPreset.grafserv?.getEnveloped;
16
+ if (!userGetEnveloped) {
17
+ throw new Error(`GrafservEnvelopPlugin is enabled, but there is no 'preset.grafserv.getEnveloped' method to call`);
18
+ }
19
+ const originalGetExecutionConfig = event.getExecutionConfig;
20
+ event.getExecutionConfig = async function getExecutionConfig(ctx) {
21
+ const config = await originalGetExecutionConfig.call(this, ctx);
22
+ const getEnveloped = (0, core_1.envelop)({
23
+ plugins: [
24
+ // PERF: memoize argument if it makes any difference
25
+ (0, core_1.useEngine)({
26
+ ...graphql,
27
+ execute: config.execute,
28
+ subscribe: config.subscribe,
29
+ specifiedRules: event.validationRules,
30
+ }),
31
+ (0, core_1.useSchema)(config.schema),
32
+ (0, core_1.useEnvelop)(userGetEnveloped),
33
+ ],
34
+ });
35
+ const { schema, execute, subscribe, contextFactory, parse: envelopedParse, validate: envelopedValidate, } = getEnveloped(ctx);
36
+ const parseAndValidate = (query) => {
37
+ const source = new graphql.Source(query, "GraphQL HTTP Request");
38
+ let document;
39
+ try {
40
+ document = envelopedParse(source);
41
+ }
42
+ catch (e) {
43
+ return { errors: [e] };
44
+ }
45
+ const errors = envelopedValidate(schema, document);
46
+ return errors.length ? { errors } : { document };
47
+ };
48
+ return {
49
+ ...config,
50
+ contextValue: contextFactory(ctx),
51
+ schema,
52
+ execute,
53
+ subscribe,
54
+ parseAndValidate,
55
+ };
56
+ };
57
+ return next();
58
+ },
59
+ },
60
+ },
61
+ };
62
+ exports.GrafservEnvelopPreset = {
63
+ plugins: [exports.GrafservEnvelopPlugin],
64
+ grafserv: {
65
+ // Let Envelop handle error masking
66
+ maskError(e) {
67
+ return e;
68
+ },
69
+ },
70
+ };
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envelop/index.ts"],"names":[],"mappings":";;;;AAAA,wCAMuB;AAEvB,yDAAmC;AAEnC,8CAAwC;AAkB3B,QAAA,qBAAqB,GAA0B;IAC1D,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAP,oBAAO;IAEP,QAAQ,EAAE;QACR,UAAU,EAAE;YACV,SAAS,CAAC,IAAI,EAAE,KAAK;gBACnB,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;gBACjC,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC/D,IAAI,CAAC,gBAAgB,EAAE;oBACrB,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;iBACH;gBACD,MAAM,0BAA0B,GAAG,KAAK,CAAC,kBAAkB,CAAC;gBAC5D,KAAK,CAAC,kBAAkB,GAAG,KAAK,UAAU,kBAAkB,CAAC,GAAG;oBAC9D,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAChE,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC;wBAC3B,OAAO,EAAE;4BACP,oDAAoD;4BACpD,IAAA,gBAAS,EAAC;gCACR,GAAG,OAAO;gCACV,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,cAAc,EAAE,KAAK,CAAC,eAAe;6BACtC,CAAC;4BACF,IAAA,gBAAS,EAAC,MAAM,CAAC,MAAM,CAAC;4BACxB,IAAA,iBAAU,EAAC,gBAAgB,CAAC;yBAC7B;qBACF,CAAC,CAAC;oBACH,MAAM,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,cAAc,EACd,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,iBAAiB,GAC5B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;wBACzC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;wBACjE,IAAI,QAAQ,CAAC;wBACb,IAAI;4BACF,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;yBACnC;wBAAC,OAAO,CAAC,EAAE;4BACV,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACxB;wBACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;oBACnD,CAAC,CAAC;oBAEF,OAAO;wBACL,GAAG,MAAM;wBACT,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC;wBACjC,MAAM;wBACN,OAAO;wBACP,SAAS;wBACT,gBAAgB;qBACjB,CAAC;gBACJ,CAAC,CAAC;gBACF,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;SACF;KACF;CACF,CAAC;AAEW,QAAA,qBAAqB,GAA0B;IAC1D,OAAO,EAAE,CAAC,6BAAqB,CAAC;IAChC,QAAQ,EAAE;QACR,mCAAmC;QACnC,SAAS,CAAC,CAAC;YACT,OAAO,CAAC,CAAC;QACX,CAAC;KACF;CACF,CAAC"}
package/dist/hooks.d.ts CHANGED
@@ -1,3 +1,7 @@
1
- import { AsyncHooks } from "graphile-config";
2
- export declare function getGrafservHooks(resolvedPreset: GraphileConfig.ResolvedPreset): AsyncHooks<GraphileConfig.GrafservHooks>;
1
+ import { Middleware } from "graphile-config";
2
+ declare const $$middleware: unique symbol;
3
+ export declare function getGrafservMiddleware(resolvedPreset: GraphileConfig.ResolvedPreset & {
4
+ [$$middleware]?: Middleware<GraphileConfig.GrafservMiddleware> | null;
5
+ }): Middleware<GraphileConfig.GrafservMiddleware> | null;
6
+ export {};
3
7
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzD,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,cAAc,CAAC,cAAc,4CAkB9C"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAgB,MAAM,iBAAiB,CAAC;AAI3D,QAAA,MAAM,YAAY,eAAuB,CAAC;AAE1C,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,cAAc,CAAC,cAAc,GAAG;IAC9C,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;CACvE,wDAkEF"}
package/dist/hooks.js CHANGED
@@ -1,16 +1,70 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGrafservHooks = void 0;
3
+ exports.getGrafservMiddleware = void 0;
4
+ const grafast_1 = require("grafast");
4
5
  const graphile_config_1 = require("graphile-config");
5
- function getGrafservHooks(resolvedPreset) {
6
- const hooks = new graphile_config_1.AsyncHooks();
7
- (0, graphile_config_1.applyHooks)(resolvedPreset.plugins, (p) => p.grafserv?.hooks, (name, fn, _plugin) => {
8
- const context = {
9
- resolvedPreset,
10
- };
11
- hooks.hook(name, ((...args) => fn(context, ...args)));
6
+ // We could use a global WeakMap, but storing directly onto the resolvedPreset
7
+ // should use more traditional garbage collection.
8
+ const $$middleware = Symbol("middleware");
9
+ function getGrafservMiddleware(resolvedPreset) {
10
+ if (resolvedPreset[$$middleware]) {
11
+ return resolvedPreset[$$middleware];
12
+ }
13
+ let middleware = null;
14
+ (0, graphile_config_1.orderedApply)(resolvedPreset.plugins, (p) => p.grafserv?.middleware, (name, fn, _plugin) => {
15
+ if (!middleware)
16
+ middleware = new graphile_config_1.Middleware();
17
+ middleware.register(name, fn);
12
18
  });
13
- return hooks;
19
+ // TODO: Delete this backwards compatibility
20
+ (0, graphile_config_1.orderedApply)(resolvedPreset.plugins, (p) => p.grafserv?.hooks, (name, fn, _plugin) => {
21
+ function resultThenNext(result, next) {
22
+ if ((0, grafast_1.isPromiseLike)(result)) {
23
+ return result.then(next);
24
+ }
25
+ else {
26
+ return next();
27
+ }
28
+ }
29
+ if (!middleware)
30
+ middleware = new graphile_config_1.Middleware();
31
+ // Backwards compatibility with the old hooks
32
+ switch (name) {
33
+ case "init": {
34
+ middleware.register("setPreset", (next, event) => {
35
+ const { resolvedPreset } = event;
36
+ const result = fn({ resolvedPreset }, event);
37
+ return resultThenNext(result, next);
38
+ });
39
+ break;
40
+ }
41
+ case "ruruHTMLParts": {
42
+ middleware.register("ruruHTMLParts", (next, event) => {
43
+ const { resolvedPreset, request, htmlParts } = event;
44
+ const result = fn({ resolvedPreset }, htmlParts, {
45
+ request,
46
+ });
47
+ return resultThenNext(result, next);
48
+ });
49
+ break;
50
+ }
51
+ case "processGraphQLRequestBody": {
52
+ middleware.register("processGraphQLRequestBody", (next, event) => {
53
+ const { resolvedPreset } = event;
54
+ const result = fn({ resolvedPreset }, event);
55
+ return resultThenNext(result, next);
56
+ });
57
+ break;
58
+ }
59
+ }
60
+ });
61
+ try {
62
+ resolvedPreset[$$middleware] = middleware;
63
+ }
64
+ catch {
65
+ // Ignore - preset must be readonly
66
+ }
67
+ return middleware;
14
68
  }
15
- exports.getGrafservHooks = getGrafservHooks;
69
+ exports.getGrafservMiddleware = getGrafservMiddleware;
16
70
  //# sourceMappingURL=hooks.js.map