postgraphile 4.12.11 → 5.0.0-0.3

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 (134) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/LICENSE.md +15 -20
  3. package/README.md +20 -171
  4. package/dist/cli-run.d.ts +3 -0
  5. package/dist/cli-run.d.ts.map +1 -0
  6. package/dist/cli-run.js +7 -0
  7. package/dist/cli-run.js.map +1 -0
  8. package/dist/cli.d.ts +21 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/cli.js +180 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/index.d.ts +14 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +88 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/plugins/PgV4BehaviorPlugin.d.ts +11 -0
  17. package/dist/plugins/PgV4BehaviorPlugin.d.ts.map +1 -0
  18. package/dist/plugins/PgV4BehaviorPlugin.js +73 -0
  19. package/dist/plugins/PgV4BehaviorPlugin.js.map +1 -0
  20. package/dist/plugins/PgV4InflectionPlugin.d.ts +11 -0
  21. package/dist/plugins/PgV4InflectionPlugin.d.ts.map +1 -0
  22. package/dist/plugins/PgV4InflectionPlugin.js +91 -0
  23. package/dist/plugins/PgV4InflectionPlugin.js.map +1 -0
  24. package/dist/plugins/PgV4NoIgnoreIndexes.d.ts +2 -0
  25. package/dist/plugins/PgV4NoIgnoreIndexes.d.ts.map +1 -0
  26. package/dist/plugins/PgV4NoIgnoreIndexes.js +72 -0
  27. package/dist/plugins/PgV4NoIgnoreIndexes.js.map +1 -0
  28. package/dist/plugins/PgV4SmartTagsPlugin.d.ts +11 -0
  29. package/dist/plugins/PgV4SmartTagsPlugin.d.ts.map +1 -0
  30. package/dist/plugins/PgV4SmartTagsPlugin.js +190 -0
  31. package/dist/plugins/PgV4SmartTagsPlugin.js.map +1 -0
  32. package/dist/presets/amber.d.ts +5 -0
  33. package/dist/presets/amber.d.ts.map +1 -0
  34. package/dist/presets/amber.js +38 -0
  35. package/dist/presets/amber.js.map +1 -0
  36. package/dist/presets/v4.d.ts +34 -0
  37. package/dist/presets/v4.d.ts.map +1 -0
  38. package/dist/presets/v4.js +142 -0
  39. package/dist/presets/v4.js.map +1 -0
  40. package/dist/schema.d.ts +34 -0
  41. package/dist/schema.d.ts.map +1 -0
  42. package/dist/schema.js +82 -0
  43. package/dist/schema.js.map +1 -0
  44. package/package.json +77 -154
  45. package/build/assets/favicon.ico.d.ts +0 -3
  46. package/build/assets/favicon.ico.js +0 -6
  47. package/build/assets/graphiql.html.d.ts +0 -2
  48. package/build/assets/graphiql.html.js +0 -6
  49. package/build/index.d.ts +0 -8
  50. package/build/index.js +0 -34
  51. package/build/interfaces.d.ts +0 -162
  52. package/build/interfaces.js +0 -3
  53. package/build/plugins.d.ts +0 -3
  54. package/build/plugins.js +0 -53
  55. package/build/postgraphile/cli.d.ts +0 -3
  56. package/build/postgraphile/cli.js +0 -541
  57. package/build/postgraphile/extendedFormatError.d.ts +0 -9
  58. package/build/postgraphile/extendedFormatError.js +0 -51
  59. package/build/postgraphile/http/createPostGraphileHttpRequestHandler.d.ts +0 -11
  60. package/build/postgraphile/http/createPostGraphileHttpRequestHandler.js +0 -974
  61. package/build/postgraphile/http/frameworks.d.ts +0 -110
  62. package/build/postgraphile/http/frameworks.js +0 -258
  63. package/build/postgraphile/http/liveSubscribe.d.ts +0 -22
  64. package/build/postgraphile/http/liveSubscribe.js +0 -89
  65. package/build/postgraphile/http/mapAsyncIterator.d.ts +0 -15
  66. package/build/postgraphile/http/mapAsyncIterator.js +0 -71
  67. package/build/postgraphile/http/setupServerSentEvents.d.ts +0 -9
  68. package/build/postgraphile/http/setupServerSentEvents.js +0 -51
  69. package/build/postgraphile/http/subscriptions.d.ts +0 -7
  70. package/build/postgraphile/http/subscriptions.js +0 -410
  71. package/build/postgraphile/index.d.ts +0 -5
  72. package/build/postgraphile/index.js +0 -14
  73. package/build/postgraphile/pluginHook.d.ts +0 -104
  74. package/build/postgraphile/pluginHook.js +0 -100
  75. package/build/postgraphile/postgraphile.d.ts +0 -20
  76. package/build/postgraphile/postgraphile.js +0 -332
  77. package/build/postgraphile/postgraphilerc.d.ts +0 -2
  78. package/build/postgraphile/postgraphilerc.js +0 -16
  79. package/build/postgraphile/schema/exportPostGraphileSchema.d.ts +0 -6
  80. package/build/postgraphile/schema/exportPostGraphileSchema.js +0 -45
  81. package/build/postgraphile/shutdownActions.d.ts +0 -41
  82. package/build/postgraphile/shutdownActions.js +0 -87
  83. package/build/postgraphile/withPostGraphileContext.d.ts +0 -55
  84. package/build/postgraphile/withPostGraphileContext.js +0 -457
  85. package/build/postgres/inventory/pgClientFromContext.d.ts +0 -8
  86. package/build/postgres/inventory/pgClientFromContext.js +0 -21
  87. package/build-turbo/assets/favicon.ico.d.ts +0 -3
  88. package/build-turbo/assets/favicon.ico.js +0 -6
  89. package/build-turbo/assets/graphiql.html.d.ts +0 -2
  90. package/build-turbo/assets/graphiql.html.js +0 -6
  91. package/build-turbo/index.d.ts +0 -8
  92. package/build-turbo/index.js +0 -34
  93. package/build-turbo/interfaces.d.ts +0 -162
  94. package/build-turbo/interfaces.js +0 -3
  95. package/build-turbo/plugins.d.ts +0 -3
  96. package/build-turbo/plugins.js +0 -53
  97. package/build-turbo/postgraphile/cli.d.ts +0 -3
  98. package/build-turbo/postgraphile/cli.js +0 -572
  99. package/build-turbo/postgraphile/extendedFormatError.d.ts +0 -9
  100. package/build-turbo/postgraphile/extendedFormatError.js +0 -61
  101. package/build-turbo/postgraphile/http/createPostGraphileHttpRequestHandler.d.ts +0 -11
  102. package/build-turbo/postgraphile/http/createPostGraphileHttpRequestHandler.js +0 -982
  103. package/build-turbo/postgraphile/http/frameworks.d.ts +0 -110
  104. package/build-turbo/postgraphile/http/frameworks.js +0 -258
  105. package/build-turbo/postgraphile/http/liveSubscribe.d.ts +0 -22
  106. package/build-turbo/postgraphile/http/liveSubscribe.js +0 -89
  107. package/build-turbo/postgraphile/http/mapAsyncIterator.d.ts +0 -15
  108. package/build-turbo/postgraphile/http/mapAsyncIterator.js +0 -71
  109. package/build-turbo/postgraphile/http/setupServerSentEvents.d.ts +0 -9
  110. package/build-turbo/postgraphile/http/setupServerSentEvents.js +0 -51
  111. package/build-turbo/postgraphile/http/subscriptions.d.ts +0 -7
  112. package/build-turbo/postgraphile/http/subscriptions.js +0 -409
  113. package/build-turbo/postgraphile/index.d.ts +0 -5
  114. package/build-turbo/postgraphile/index.js +0 -14
  115. package/build-turbo/postgraphile/pluginHook.d.ts +0 -104
  116. package/build-turbo/postgraphile/pluginHook.js +0 -100
  117. package/build-turbo/postgraphile/postgraphile.d.ts +0 -20
  118. package/build-turbo/postgraphile/postgraphile.js +0 -337
  119. package/build-turbo/postgraphile/postgraphilerc.d.ts +0 -2
  120. package/build-turbo/postgraphile/postgraphilerc.js +0 -16
  121. package/build-turbo/postgraphile/schema/exportPostGraphileSchema.d.ts +0 -6
  122. package/build-turbo/postgraphile/schema/exportPostGraphileSchema.js +0 -45
  123. package/build-turbo/postgraphile/shutdownActions.d.ts +0 -41
  124. package/build-turbo/postgraphile/shutdownActions.js +0 -87
  125. package/build-turbo/postgraphile/withPostGraphileContext.d.ts +0 -55
  126. package/build-turbo/postgraphile/withPostGraphileContext.js +0 -466
  127. package/build-turbo/postgres/inventory/pgClientFromContext.d.ts +0 -8
  128. package/build-turbo/postgres/inventory/pgClientFromContext.js +0 -21
  129. package/cli.js +0 -6
  130. package/index.js +0 -5
  131. package/isTurbo.js +0 -11
  132. package/plugins.d.ts +0 -1
  133. package/plugins.js +0 -5
  134. package/sponsors.json +0 -150
@@ -1,110 +0,0 @@
1
- /// <reference types="node" />
2
- import { PassThrough, Stream } from 'stream';
3
- import type { IncomingMessage, ServerResponse } from 'http';
4
- /******************************************************************************/
5
- export interface CompatFastifyReply {
6
- raw: ServerResponse;
7
- status(statusCode: number): CompatFastifyReply;
8
- headers(values: {
9
- [key: string]: any;
10
- }): CompatFastifyReply;
11
- send(payload?: any): CompatFastifyReply;
12
- }
13
- export interface CompatFastifyRequest {
14
- raw: IncomingMessage;
15
- body: unknown;
16
- readonly headers: {
17
- [key: string]: unknown;
18
- };
19
- }
20
- /******************************************************************************/
21
- /******************************************************************************/
22
- export interface CompatKoaContext {
23
- [key: string]: any;
24
- req: IncomingMessage;
25
- res: ServerResponse;
26
- }
27
- /******************************************************************************/
28
- declare module 'http' {
29
- interface IncomingMessage {
30
- _koaCtx?: CompatKoaContext;
31
- _fastifyRequest?: CompatFastifyRequest;
32
- _body?: boolean;
33
- body?: any;
34
- originalUrl?: string;
35
- }
36
- }
37
- declare type Headers = {
38
- [header: string]: string;
39
- };
40
- /**
41
- * The base class for PostGraphile responses; collects headers, status code and
42
- * body, and then hands to the relevant adaptor at the correct time.
43
- */
44
- export declare abstract class PostGraphileResponse {
45
- private _headers;
46
- private _body;
47
- private _setHeaders;
48
- statusCode: number;
49
- private _setHeadersOnce;
50
- setHeader(header: string, value: string): void;
51
- /**
52
- * Use `endWithStream` or `end`; not both.
53
- */
54
- endWithStream(): PassThrough;
55
- /**
56
- * Use `endWithStream` or `end`; not both
57
- */
58
- end(moreBody?: Buffer | string | null): void;
59
- /**
60
- * Returns the `res` object that the underlying HTTP server would have.
61
- */
62
- abstract getNodeServerRequest(): IncomingMessage;
63
- abstract getNodeServerResponse(): ServerResponse;
64
- abstract setHeaders(statusCode: number, headers: Headers): void;
65
- abstract setBody(body: Stream | Buffer | string | undefined): void;
66
- }
67
- /**
68
- * Suitable for Node's HTTP server, but also connect, express, restify and fastify v2.
69
- */
70
- export declare class PostGraphileResponseNode extends PostGraphileResponse {
71
- private _req;
72
- private _res;
73
- private _next;
74
- constructor(req: IncomingMessage, res: ServerResponse, next: (e?: 'route' | Error) => void);
75
- getNodeServerRequest(): IncomingMessage;
76
- getNodeServerResponse(): ServerResponse;
77
- getNextCallback(): (e?: Error | "route" | undefined) => void;
78
- setHeaders(statusCode: number, headers: Headers): void;
79
- setBody(body: Stream | Buffer | string | undefined): void;
80
- }
81
- export declare type CompatKoaNext = (error?: Error) => Promise<any>;
82
- /**
83
- * Suitable for Koa.
84
- */
85
- export declare class PostGraphileResponseKoa extends PostGraphileResponse {
86
- private _ctx;
87
- private _next;
88
- constructor(ctx: CompatKoaContext, next: CompatKoaNext);
89
- getNodeServerRequest(): IncomingMessage;
90
- getNodeServerResponse(): ServerResponse;
91
- getNextCallback(): CompatKoaNext;
92
- setHeaders(statusCode: number, headers: Headers): void;
93
- endWithStream(): PassThrough;
94
- setBody(body: Stream | Buffer | string | undefined): void;
95
- }
96
- /**
97
- * Suitable for Fastify v3 (use PostGraphileResponseNode and middleware
98
- * approach for Fastify v2)
99
- */
100
- export declare class PostGraphileResponseFastify3 extends PostGraphileResponse {
101
- private _request;
102
- private _reply;
103
- constructor(request: CompatFastifyRequest, reply: CompatFastifyReply);
104
- getNodeServerRequest(): IncomingMessage;
105
- getNodeServerResponse(): ServerResponse;
106
- setHeaders(statusCode: number, headers: Headers): void;
107
- endWithStream(): PassThrough;
108
- setBody(body: Stream | Buffer | string | undefined): void;
109
- }
110
- export {};
@@ -1,258 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PostGraphileResponseFastify3 = exports.PostGraphileResponseKoa = exports.PostGraphileResponseNode = exports.PostGraphileResponse = void 0;
4
- const stream_1 = require("stream");
5
- /**
6
- * The base class for PostGraphile responses; collects headers, status code and
7
- * body, and then hands to the relevant adaptor at the correct time.
8
- */
9
- class PostGraphileResponse {
10
- constructor() {
11
- this._headers = {};
12
- this._setHeaders = false;
13
- this.statusCode = 200;
14
- }
15
- _setHeadersOnce() {
16
- if (!this._setHeaders) {
17
- this._setHeaders = true;
18
- this.setHeaders(this.statusCode, this._headers);
19
- }
20
- }
21
- setHeader(header, value) {
22
- if (this._setHeaders) {
23
- throw new Error(`Cannot set a header '${header}' when headers already sent`);
24
- }
25
- this._headers[header] = value;
26
- }
27
- /**
28
- * Use `endWithStream` or `end`; not both.
29
- */
30
- endWithStream() {
31
- if (this._body != null) {
32
- throw new Error("Cannot return a stream when there's already a response body");
33
- }
34
- this._setHeadersOnce();
35
- this._body = new stream_1.PassThrough();
36
- this.setBody(this._body);
37
- return this._body;
38
- }
39
- /**
40
- * Use `endWithStream` or `end`; not both
41
- */
42
- end(moreBody) {
43
- if (moreBody) {
44
- if (this._body != null) {
45
- if (typeof this._body === 'string') {
46
- if (Buffer.isBuffer(moreBody)) {
47
- throw new Error('Cannot mix string and buffer');
48
- }
49
- this._body = this._body + moreBody;
50
- }
51
- else if (Buffer.isBuffer(this._body)) {
52
- if (typeof moreBody === 'string') {
53
- throw new Error('Cannot mix buffer and string');
54
- }
55
- this._body = Buffer.concat([this._body, moreBody]);
56
- }
57
- else {
58
- throw new Error("Can't `.end(string)` when body is a stream");
59
- }
60
- }
61
- else {
62
- this._body = moreBody;
63
- }
64
- }
65
- // If possible, set Content-Length to avoid unnecessary chunked encoding
66
- if (typeof this._body === 'string') {
67
- // String length is not reliable due to multi-byte characters; calculate via Buffer
68
- this.setHeader('Content-Length', String(Buffer.byteLength(this._body, 'utf8')));
69
- }
70
- else if (Buffer.isBuffer(this._body)) {
71
- this.setHeader('Content-Length', String(this._body.byteLength));
72
- }
73
- this._setHeadersOnce();
74
- this.setBody(this._body);
75
- }
76
- }
77
- exports.PostGraphileResponse = PostGraphileResponse;
78
- /**
79
- * Suitable for Node's HTTP server, but also connect, express, restify and fastify v2.
80
- */
81
- class PostGraphileResponseNode extends PostGraphileResponse {
82
- constructor(req, res, next) {
83
- super();
84
- this._req = req;
85
- this._res = res;
86
- this._next = next;
87
- }
88
- getNodeServerRequest() {
89
- return this._req;
90
- }
91
- getNodeServerResponse() {
92
- return this._res;
93
- }
94
- getNextCallback() {
95
- return this._next;
96
- }
97
- setHeaders(statusCode, headers) {
98
- for (const key in headers) {
99
- if (Object.hasOwnProperty.call(headers, key)) {
100
- this._res.setHeader(key, headers[key]);
101
- }
102
- }
103
- this._res.statusCode = statusCode;
104
- }
105
- setBody(body) {
106
- if (typeof body === 'string') {
107
- this._res.end(body);
108
- }
109
- else if (Buffer.isBuffer(body)) {
110
- this._res.end(body);
111
- }
112
- else if (!body) {
113
- this._res.end();
114
- }
115
- else {
116
- // Must be a stream
117
- // It'd be really nice if we could just:
118
- //
119
- // body.pipe(this._res);
120
- //
121
- // however we need to support running within the compression middleware
122
- // which requires special handling for server-sent events:
123
- // https://github.com/expressjs/compression#server-sent-events
124
- //
125
- // Because of this, we must handle the data streaming manually so we can
126
- // flush:
127
- const writeData = (data) => {
128
- this._res.write(data);
129
- // Technically we should see if `.write()` returned false, and if so we
130
- // should pause the stream. However, since our stream is coming from
131
- // watch mode, we find it unlikely that a significant amount of data
132
- // will be buffered (and we don't recommend watch mode in production),
133
- // so it doesn't feel like we need this currently. If it turns out you
134
- // need this, a PR would be welcome.
135
- if (typeof this._res.flush === 'function') {
136
- // https://github.com/expressjs/compression#server-sent-events
137
- this._res.flush();
138
- }
139
- else if (typeof this._res.flushHeaders === 'function') {
140
- this._res.flushHeaders();
141
- }
142
- };
143
- let clean = false;
144
- const cleanup = () => {
145
- if (clean)
146
- return;
147
- clean = true;
148
- body.removeListener('data', writeData);
149
- body.removeListener('end', cleanup);
150
- this._req.removeListener('close', cleanup);
151
- this._req.removeListener('end', cleanup);
152
- this._req.removeListener('error', cleanup);
153
- };
154
- body.on('data', writeData);
155
- body.on('end', () => {
156
- cleanup();
157
- this._res.end();
158
- });
159
- this._req.on('close', cleanup);
160
- this._req.on('end', cleanup);
161
- this._req.on('error', cleanup);
162
- }
163
- }
164
- }
165
- exports.PostGraphileResponseNode = PostGraphileResponseNode;
166
- /**
167
- * Suitable for Koa.
168
- */
169
- class PostGraphileResponseKoa extends PostGraphileResponse {
170
- constructor(ctx, next) {
171
- super();
172
- this._ctx = ctx;
173
- this._next = next;
174
- const req = this.getNodeServerRequest();
175
- // For backwards compatibility, and to allow getting "back" to the Koa
176
- // context from pgSettings, etc (this is a documented interface)
177
- req._koaCtx = ctx;
178
- // Make `koa-bodyparser` trigger skipping of our `body-parser`
179
- if (ctx.request.body) {
180
- req._body = true;
181
- req.body = ctx.request.body;
182
- }
183
- // In case you're using koa-mount or similar
184
- req.originalUrl = ctx.request.originalUrl;
185
- }
186
- getNodeServerRequest() {
187
- return this._ctx.req;
188
- }
189
- getNodeServerResponse() {
190
- return this._ctx.res;
191
- }
192
- getNextCallback() {
193
- return this._next;
194
- }
195
- setHeaders(statusCode, headers) {
196
- this._ctx.status = statusCode;
197
- this._ctx.set(headers);
198
- // DO NOT `this._ctx.flushHeaders()` as it will interfere with the compress
199
- // middleware.
200
- }
201
- endWithStream() {
202
- // We're going to assume this is the EventStream which we want to
203
- // be realtime for watch mode, and there's no value in compressing it.
204
- this._ctx.compress = false;
205
- // TODO: find a better way of flushing the event stream on write.
206
- return super.endWithStream();
207
- }
208
- setBody(body) {
209
- this._ctx.body = body || '';
210
- this._next();
211
- }
212
- }
213
- exports.PostGraphileResponseKoa = PostGraphileResponseKoa;
214
- /**
215
- * Suitable for Fastify v3 (use PostGraphileResponseNode and middleware
216
- * approach for Fastify v2)
217
- */
218
- class PostGraphileResponseFastify3 extends PostGraphileResponse {
219
- constructor(request, reply) {
220
- super();
221
- this._request = request;
222
- this._reply = reply;
223
- // For backwards compatibility, and to allow getting "back" to the Fastify
224
- // request from pgSettings, etc
225
- const req = this.getNodeServerRequest();
226
- req._fastifyRequest = this._request;
227
- // Make Fastify's body parsing trigger skipping of our `body-parser`
228
- if (this._request.body) {
229
- req._body = true;
230
- req.body = this._request.body;
231
- }
232
- }
233
- getNodeServerRequest() {
234
- return this._request.raw;
235
- }
236
- getNodeServerResponse() {
237
- return this._reply.raw;
238
- }
239
- setHeaders(statusCode, headers) {
240
- this._reply.status(statusCode);
241
- this._reply.headers(headers);
242
- }
243
- endWithStream() {
244
- // We're going to assume this is the EventStream which we want to
245
- // be realtime for watch mode, and there's no value in compressing it.
246
- // Fastify will disable compression if we set the relevant request header
247
- // (see:
248
- // https://github.com/fastify/fastify-compress/blob/068c673fc0bd50da1f4d9f3fd2423b482c364a89/index.js#L217-L218)
249
- this._request.headers['x-no-compression'] = '1';
250
- // TODO: find a better way of flushing the event stream on write.
251
- return super.endWithStream();
252
- }
253
- setBody(body) {
254
- this._reply.send(body);
255
- }
256
- }
257
- exports.PostGraphileResponseFastify3 = PostGraphileResponseFastify3;
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3Jrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wb3N0Z3JhcGhpbGUvaHR0cC9mcmFtZXdvcmtzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUE2QztBQThEN0M7OztHQUdHO0FBQ0gsTUFBc0Isb0JBQW9CO0lBQTFDO1FBQ1UsYUFBUSxHQUFZLEVBQUUsQ0FBQztRQUV2QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsR0FBRyxDQUFDO0lBd0UxQixDQUFDO0lBdEVTLGVBQWU7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYyxFQUFFLEtBQWE7UUFDNUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLE1BQU0sNkJBQTZCLENBQUMsQ0FBQztTQUM5RTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7U0FDaEY7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLG9CQUFXLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7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
@@ -1,22 +0,0 @@
1
- /**
2
- * This file contains code that is derived from code copyright (c) Facebook,
3
- * Inc. and its affiliates; released under the MIT license.
4
- *
5
- * The original code can be seen at the following URL, which includes a
6
- * reference to the original license:
7
- *
8
- * https://github.com/graphql/graphql-js/blob/f56905bd6b030d5912092a1239ed21f73fbdd408/src/subscription/subscribe.js
9
- */
10
- import type { subscribe } from 'graphql';
11
- import { CreateRequestHandlerOptions } from '../../interfaces';
12
- import { PluginHookFn } from '../pluginHook';
13
- /**
14
- * This method returns a function compatible with the `subscribe` function from
15
- * GraphQL.js, but with enhancements to support live queries.
16
- *
17
- * @internal
18
- */
19
- export declare function makeLiveSubscribe(params: {
20
- options: CreateRequestHandlerOptions;
21
- pluginHook: PluginHookFn;
22
- }): typeof subscribe;
@@ -1,89 +0,0 @@
1
- "use strict";
2
- /**
3
- * This file contains code that is derived from code copyright (c) Facebook,
4
- * Inc. and its affiliates; released under the MIT license.
5
- *
6
- * The original code can be seen at the following URL, which includes a
7
- * reference to the original license:
8
- *
9
- * https://github.com/graphql/graphql-js/blob/f56905bd6b030d5912092a1239ed21f73fbdd408/src/subscription/subscribe.js
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.makeLiveSubscribe = void 0;
13
- /* tslint:disable no-any */
14
- const graphql_1 = require("graphql");
15
- const mapAsyncIterator_1 = require("./mapAsyncIterator");
16
- const iterall_1 = require("iterall");
17
- /**
18
- * This method returns a function compatible with the `subscribe` function from
19
- * GraphQL.js, but with enhancements to support live queries.
20
- *
21
- * @internal
22
- */
23
- function makeLiveSubscribe(params) {
24
- const { pluginHook } = params;
25
- return function liveSubscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
26
- /* eslint-enable no-redeclare */
27
- // Extract arguments from object args if provided.
28
- return arguments.length === 1
29
- ? liveSubscribeImpl(argsOrSchema.schema, argsOrSchema.document, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver, argsOrSchema.subscribeFieldResolver)
30
- : liveSubscribeImpl(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver);
31
- };
32
- function liveSubscribeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
33
- const sourcePromise = graphql_1.createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver);
34
- // For each payload yielded from a subscription, map it over the normal
35
- // GraphQL `execute` function, with `payload` as the rootValue.
36
- // This implements the "MapSourceToResponseEvent" algorithm described in
37
- // the GraphQL specification. The `execute` function provides the
38
- // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the
39
- // "ExecuteQuery" algorithm, for which `execute` is also used.
40
- const mapSourceToResponse = async (payload) => {
41
- /*
42
- * GRAPHILE FORK
43
- *
44
- * We need to tell Graphile Engine when the execution has completed
45
- * (because we cannot detect this from inside the GraphQL execution) so
46
- * that it can clean up old listeners; we do this with the `finally` block.
47
- */
48
- try {
49
- const executionResult = graphql_1.execute(schema, document, payload, contextValue, variableValues, operationName, fieldResolver);
50
- const hookedExecutionResult = pluginHook('postgraphile:liveSubscribe:executionResult', executionResult, {
51
- schema,
52
- document,
53
- rootValue,
54
- contextValue,
55
- variableValues,
56
- operationName,
57
- fieldResolver,
58
- subscribeFieldResolver,
59
- });
60
- return await hookedExecutionResult;
61
- }
62
- finally {
63
- if (payload && typeof payload.release === 'function') {
64
- payload.release();
65
- }
66
- }
67
- };
68
- // Resolve the Source Stream, then map every source value to a
69
- // ExecutionResult value as described above.
70
- return sourcePromise.then(resultOrStream =>
71
- // Note: Flow can't refine isAsyncIterable, so explicit casts are used.
72
- iterall_1.isAsyncIterable(resultOrStream)
73
- ? mapAsyncIterator_1.default(resultOrStream, mapSourceToResponse, reportGraphQLError)
74
- : resultOrStream, reportGraphQLError);
75
- }
76
- }
77
- exports.makeLiveSubscribe = makeLiveSubscribe;
78
- /**
79
- * This function checks if the error is a GraphQLError. If it is, report it as
80
- * an ExecutionResult, containing only errors and no data. Otherwise treat the
81
- * error as a system-class error and re-throw it.
82
- */
83
- function reportGraphQLError(error) {
84
- if (error instanceof graphql_1.GraphQLError) {
85
- return { errors: [error] };
86
- }
87
- throw error;
88
- }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZVN1YnNjcmliZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wb3N0Z3JhcGhpbGUvaHR0cC9saXZlU3Vic2NyaWJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRzs7O0FBRUgsMkJBQTJCO0FBQzNCLHFDQVFpQjtBQUVqQix5REFBa0Q7QUFDbEQscUNBQTBDO0FBTTFDOzs7OztHQUtHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsTUFHakM7SUFDQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTlCLE9BQU8sU0FBUyxhQUFhLENBQzNCLFlBQWlDLEVBQ2pDLFFBQXVCLEVBQ3ZCLFNBQWUsRUFDZixZQUFrQixFQUNsQixjQUF1QyxFQUN2QyxhQUFzQixFQUN0QixhQUE4QyxFQUM5QyxzQkFBdUQ7UUFFdkQsZ0NBQWdDO1FBQ2hDLGtEQUFrRDtRQUNsRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUMzQixDQUFDLENBQUMsaUJBQWlCLENBQ2YsWUFBWSxDQUFDLE1BQU0sRUFDbkIsWUFBWSxDQUFDLFFBQVEsRUFDckIsWUFBWSxDQUFDLFNBQVMsRUFDdEIsWUFBWSxDQUFDLFlBQVksRUFDekIsWUFBWSxDQUFDLGNBQWMsRUFDM0IsWUFBWSxDQUFDLGFBQWEsRUFDMUIsWUFBWSxDQUFDLGFBQWEsRUFDMUIsWUFBWSxDQUFDLHNCQUFzQixDQUNwQztZQUNILENBQUMsQ0FBQyxpQkFBaUIsQ0FDZixZQUFZLEVBQ1osUUFBd0IsRUFDeEIsU0FBUyxFQUNULFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLGFBQWEsRUFDYixzQkFBc0IsQ0FDdkIsQ0FBQztJQUNSLENBQUMsQ0FBQztJQUVGLFNBQVMsaUJBQWlCLENBQ3hCLE1BQXFCLEVBQ3JCLFFBQXNCLEVBQ3RCLFNBQWUsRUFDZixZQUFrQixFQUNsQixjQUF1QyxFQUN2QyxhQUFzQixFQUN0QixhQUE4QyxFQUM5QyxzQkFBdUQ7UUFFdkQsTUFBTSxhQUFhLEdBQUcsaUNBQXVCLENBQzNDLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNULFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLHNCQUFzQixDQUN2QixDQUFDO1FBRUYsdUVBQXVFO1FBQ3ZFLCtEQUErRDtRQUMvRCx3RUFBd0U7UUFDeEUsaUVBQWlFO1FBQ2pFLHlFQUF5RTtRQUN6RSw4REFBOEQ7UUFDOUQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7WUFDakQ7Ozs7OztlQU1HO1lBQ0gsSUFBSTtnQkFDRixNQUFNLGVBQWUsR0FBRyxpQkFBTyxDQUM3QixNQUFNLEVBQ04sUUFBUSxFQUNSLE9BQU8sRUFDUCxZQUFZLEVBQ1osY0FBYyxFQUNkLGFBQWEsRUFDYixhQUFhLENBQ2QsQ0FBQztnQkFFRixNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FDdEMsNENBQTRDLEVBQzVDLGVBQWUsRUFDZjtvQkFDRSxNQUFNO29CQUNOLFFBQVE7b0JBQ1IsU0FBUztvQkFDVCxZQUFZO29CQUNaLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixhQUFhO29CQUNiLHNCQUFzQjtpQkFDdkIsQ0FDRixDQUFDO2dCQUVGLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQzthQUNwQztvQkFBUztnQkFDUixJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO29CQUNwRCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ25CO2FBQ0Y7UUFDSCxDQUFDLENBQUM7UUFFRiw4REFBOEQ7UUFDOUQsNENBQTRDO1FBQzVDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FDdkIsY0FBYyxDQUFDLEVBQUU7UUFDZix1RUFBdUU7UUFDdkUseUJBQWUsQ0FBQyxjQUFjLENBQUM7WUFDN0IsQ0FBQyxDQUFDLDBCQUFnQixDQUNiLGNBQThDLEVBQy9DLG1CQUFtQixFQUNuQixrQkFBa0IsQ0FDbkI7WUFDSCxDQUFDLENBQUcsY0FBMEMsRUFDbEQsa0JBQWtCLENBQ25CLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQTVIRCw4Q0E0SEM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxLQUFVO0lBQ3BDLElBQUksS0FBSyxZQUFZLHNCQUFZLEVBQUU7UUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7S0FDNUI7SUFDRCxNQUFNLEtBQUssQ0FBQztBQUNkLENBQUMifQ==
@@ -1,15 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @flow strict
8
- */
9
- declare type PromiseOrValue<T> = T | Promise<T>;
10
- /**
11
- * Given an AsyncIterable and a callback function, return an AsyncIterator
12
- * which produces values mapped via calling the callback function.
13
- */
14
- export default function mapAsyncIterator<T, U>(iterable: AsyncIterable<T>, callback: (val: T) => PromiseOrValue<U>, rejectCallback?: (val: any) => PromiseOrValue<U>): AsyncIterableIterator<U>;
15
- export {};
@@ -1,71 +0,0 @@
1
- "use strict";
2
- // This file is a copy from the GraphQL codebase, modified to work in TypeScript:
3
- // https://github.com/graphql/graphql-js/blob/f56905bd6b030d5912092a1239ed21f73fbdd408/src/subscription/mapAsyncIterator.js
4
- /* tslint:disable no-any */
5
- /**
6
- * Copyright (c) Facebook, Inc. and its affiliates.
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE file in the root directory of this source tree.
10
- *
11
- * @flow strict
12
- */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- const iterall_1 = require("iterall");
15
- /**
16
- * Given an AsyncIterable and a callback function, return an AsyncIterator
17
- * which produces values mapped via calling the callback function.
18
- */
19
- function mapAsyncIterator(iterable, callback, rejectCallback) {
20
- const iterator = iterall_1.getAsyncIterator(iterable);
21
- let $return;
22
- let abruptClose;
23
- // $FlowFixMe(>=0.68.0)
24
- if (typeof iterator.return === 'function') {
25
- $return = iterator.return;
26
- abruptClose = (error) => {
27
- const rethrow = () => Promise.reject(error);
28
- return $return.call(iterator).then(rethrow, rethrow);
29
- };
30
- }
31
- function mapResult(result) {
32
- return result.done
33
- ? result
34
- : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);
35
- }
36
- let mapReject;
37
- if (rejectCallback) {
38
- // Capture rejectCallback to ensure it cannot be null.
39
- const reject = rejectCallback;
40
- mapReject = (error) => asyncMapValue(error, reject).then(iteratorResult, abruptClose);
41
- }
42
- const mappedIterator = {
43
- next() {
44
- return iterator.next().then(mapResult, mapReject);
45
- },
46
- return() {
47
- return $return
48
- ? $return.call(iterator).then(mapResult, mapReject)
49
- : Promise.resolve({ value: undefined, done: true });
50
- },
51
- throw(error) {
52
- if (typeof iterator.throw === 'function') {
53
- return iterator.throw(error).then(mapResult, mapReject);
54
- }
55
- return Promise.reject(error).catch(abruptClose);
56
- },
57
- // @ts-ignore TypeScript doesn't seem to understand that this is really `Symbol.asyncIterator`
58
- [iterall_1.$$asyncIterator]() {
59
- return this;
60
- },
61
- };
62
- return mappedIterator;
63
- }
64
- exports.default = mapAsyncIterator;
65
- function asyncMapValue(value, callback) {
66
- return new Promise(resolve => resolve(callback(value)));
67
- }
68
- function iteratorResult(value) {
69
- return { value, done: false };
70
- }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwQXN5bmNJdGVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wb3N0Z3JhcGhpbGUvaHR0cC9tYXBBc3luY0l0ZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpRkFBaUY7QUFDakYsNkhBQTZIO0FBQzdILDJCQUEyQjtBQUMzQjs7Ozs7OztHQU9HOztBQUVILHFDQUE0RDtBQUc1RDs7O0dBR0c7QUFDSCxTQUF3QixnQkFBZ0IsQ0FDdEMsUUFBMEIsRUFDMUIsUUFBdUMsRUFDdkMsY0FBZ0Q7SUFFaEQsTUFBTSxRQUFRLEdBQUcsMEJBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsSUFBSSxPQUFZLENBQUM7SUFDakIsSUFBSSxXQUFnQixDQUFDO0lBQ3JCLHVCQUF1QjtJQUN2QixJQUFJLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7UUFDekMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDMUIsV0FBVyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUM7S0FDSDtJQUVELFNBQVMsU0FBUyxDQUFDLE1BQVc7UUFDNUIsT0FBTyxNQUFNLENBQUMsSUFBSTtZQUNoQixDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLFNBQWMsQ0FBQztJQUNuQixJQUFJLGNBQWMsRUFBRTtRQUNsQixzREFBc0Q7UUFDdEQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDO1FBQzlCLFNBQVMsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQzVGO0lBRUQsTUFBTSxjQUFjLEdBQTZCO1FBQy9DLElBQUk7WUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxNQUFNO1lBQ0osT0FBTyxPQUFPO2dCQUNaLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2dCQUNuRCxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELEtBQUssQ0FBQyxLQUFLO1lBQ1QsSUFBSSxPQUFPLFFBQVEsQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFO2dCQUN4QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUN6RDtZQUNELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELDhGQUE4RjtRQUM5RixDQUFDLHlCQUFlLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FDRixDQUFDO0lBQ0YsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQW5ERCxtQ0FtREM7QUFFRCxTQUFTLGFBQWEsQ0FBTyxLQUFRLEVBQUUsUUFBdUM7SUFDNUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBSSxLQUFRO0lBQ2pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ2hDLENBQUMifQ==
@@ -1,9 +0,0 @@
1
- import { CreateRequestHandlerOptions } from '../../interfaces';
2
- import { PostGraphileResponse } from './frameworks';
3
- /**
4
- * Sets the headers and streams a body for server-sent events (primarily used
5
- * by watch mode).
6
- *
7
- * @internal
8
- */
9
- export default function setupServerSentEvents(res: PostGraphileResponse, options: CreateRequestHandlerOptions): void;
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Sets the headers and streams a body for server-sent events (primarily used
5
- * by watch mode).
6
- *
7
- * @internal
8
- */
9
- function setupServerSentEvents(res, options) {
10
- const req = res.getNodeServerRequest();
11
- const { _emitter, watchPg } = options;
12
- // Making sure these options are set.
13
- req.socket.setTimeout(0);
14
- req.socket.setNoDelay(true);
15
- req.socket.setKeepAlive(true);
16
- // Set headers for Server-Sent Events.
17
- res.statusCode = 200;
18
- // Don't buffer EventStream in nginx
19
- res.setHeader('X-Accel-Buffering', 'no');
20
- res.setHeader('Content-Type', 'text/event-stream');
21
- res.setHeader('Cache-Control', 'no-cache, no-transform');
22
- if (req.httpVersionMajor >= 2) {
23
- // NOOP
24
- }
25
- else {
26
- res.setHeader('Connection', 'keep-alive');
27
- }
28
- // Creates a stream for the response
29
- const stream = res.endWithStream();
30
- // Notify client that connection is open.
31
- stream.write('event: open\n\n');
32
- // Setup listeners.
33
- const schemaChangedCb = () => stream.write('event: change\ndata: schema\n\n');
34
- if (watchPg)
35
- _emitter.on('schemas:changed', schemaChangedCb);
36
- // Clean up when connection closes.
37
- const cleanup = () => {
38
- req.removeListener('close', cleanup);
39
- req.removeListener('finish', cleanup);
40
- req.removeListener('error', cleanup);
41
- _emitter.removeListener('test:close', cleanup);
42
- _emitter.removeListener('schemas:changed', schemaChangedCb);
43
- stream.end();
44
- };
45
- req.on('close', cleanup);
46
- req.on('finish', cleanup);
47
- req.on('error', cleanup);
48
- _emitter.on('test:close', cleanup);
49
- }
50
- exports.default = setupServerSentEvents;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBTZXJ2ZXJTZW50RXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Bvc3RncmFwaGlsZS9odHRwL3NldHVwU2VydmVyU2VudEV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBOzs7OztHQUtHO0FBQ0gsU0FBd0IscUJBQXFCLENBQzNDLEdBQXlCLEVBQ3pCLE9BQW9DO0lBRXBDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXRDLHFDQUFxQztJQUNyQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU5QixzQ0FBc0M7SUFDdEMsR0FBRyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDckIsb0NBQW9DO0lBQ3BDLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNuRCxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3pELElBQUksR0FBRyxDQUFDLGdCQUFnQixJQUFJLENBQUMsRUFBRTtRQUM3QixPQUFPO0tBQ1I7U0FBTTtRQUNMLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQzNDO0lBRUQsb0NBQW9DO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUVuQyx5Q0FBeUM7SUFDekMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWhDLG1CQUFtQjtJQUNuQixNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFFOUUsSUFBSSxPQUFPO1FBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUU3RCxtQ0FBbUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ25CLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLFFBQVEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBQ0YsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekIsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQWhERCx3Q0FnREMifQ==
@@ -1,7 +0,0 @@
1
- /// <reference types="node" />
2
- import { Server, IncomingMessage, ServerResponse } from 'http';
3
- import { HttpRequestHandler } from '../../interfaces';
4
- export declare function enhanceHttpServerWithWebSockets<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse>(websocketServer: Server, postgraphileMiddleware: HttpRequestHandler, subscriptionServerOptions?: {
5
- keepAlive?: number;
6
- graphqlRoute?: string;
7
- }): Promise<void>;