graphql-pg-subscriptions 3.1.8 → 3.2.0

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.
package/README.md CHANGED
@@ -24,15 +24,7 @@ export const pubsub = new PubSub();
24
24
  ```
25
25
 
26
26
  ```js
27
- // After
28
- import { PostgresPubSub } from "graphql-pg-subscriptions";
29
-
30
- export const pubsub = new PostgresPubSub();
31
- ```
32
-
33
- This library uses [`node-postgres`](https://github.com/brianc/node-postgres) to connect to PostgreSQL. If you want to customize connection options, please refer to their [connection docs](https://node-postgres.com/features/connecting).
34
-
35
- ```js
27
+ //After
36
28
  import { PostgresPubSub } from "graphql-postgres-subscriptions";
37
29
  import { Client } from "pg";
38
30
 
@@ -51,8 +43,6 @@ const pubsub = new PostgresPubSub({ client, maxListeners: 15 });
51
43
  //You can increase max event listeners if you need, default is 15
52
44
  ```
53
45
 
54
- **Important**: Don't pass clients from `pg`'s `Pool` to `PostgresPubSub`. As [node-postgres creator states in this StackOverflow answer](https://stackoverflow.com/questions/8484404/what-is-the-proper-way-to-use-the-node-js-postgresql-module), the client needs to be around and not shared so pg can properly handle `NOTIFY` messages (which this library uses under the hood)
55
-
56
46
  ### commonMessageHandler
57
47
 
58
48
  The second argument to `new PostgresPubSub()` is the `commonMessageHandler`. The common message handler gets called with the received message from PostgreSQL.
@@ -93,8 +83,6 @@ For example you can log all error messages (including stack traces and friends)
93
83
  ps.subscribe("error", console.error);
94
84
  ```
95
85
 
96
- This is a forked version of [GraphQLCollege/graphql-postgres-subscriptions](https://github.com/GraphQLCollege/graphql-postgres-subscriptions), where I add typescript and dependency error.
97
-
98
86
  ## Stay in touch
99
87
 
100
88
  - Author - [Siam Ahnaf](https://www.siamahnaf.com/)
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { $$asyncIterator } from "iterall";
3
3
  import { EventEmitter } from "events";
4
+ import { Client } from "pg";
4
5
  type MessageHandler<T> = (message: T) => any;
5
- declare function eventEmitterAsyncIterator<T>(eventEmitter: EventEmitter, eventsNames: string | string[], commonMessageHandler?: MessageHandler<T>): {
6
+ declare function eventEmitterAsyncIterator<T>(eventEmitter: EventEmitter, eventsNames: string | string[], commonMessageHandler: MessageHandler<T> | undefined, client: Client): {
6
7
  next(): Promise<IteratorResult<any, any>>;
7
8
  return(): Promise<{
8
9
  value: undefined;
@@ -1,21 +1,34 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.eventEmitterAsyncIterator = void 0;
4
13
  const iterall_1 = require("iterall");
5
- function eventEmitterAsyncIterator(eventEmitter, eventsNames, commonMessageHandler = message => message) {
14
+ function eventEmitterAsyncIterator(eventEmitter, eventsNames, commonMessageHandler = message => message, client) {
6
15
  const pullQueue = [];
7
16
  const pushQueue = [];
8
17
  const eventsArray = typeof eventsNames === "string" ? [eventsNames] : eventsNames;
9
18
  let listening = true;
10
- const pushValue = ({ payload: event }) => {
11
- const value = commonMessageHandler(event);
19
+ const pushValue = (_a) => __awaiter(this, [_a], void 0, function* ({ payload: event }) {
20
+ const query = `SELECT payload FROM pubsub_payloads WHERE id = $1`;
21
+ const res = yield client.query(query, [event]);
22
+ const value = commonMessageHandler(res.rows[0].payload);
12
23
  if (pullQueue.length !== 0) {
13
24
  pullQueue.shift()({ value, done: false });
14
25
  }
15
26
  else {
16
27
  pushQueue.push(value);
17
28
  }
18
- };
29
+ const deleteQuery = `DELETE FROM pubsub_payloads WHERE id = $1`;
30
+ yield client.query(deleteQuery, [event]);
31
+ });
19
32
  const pullValue = () => {
20
33
  return new Promise(resolve => {
21
34
  if (pushQueue.length !== 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"event-emitter-to-async-iterator.js","sourceRoot":"","sources":["../../../src/pubsub/event-emitter-to-async-iterator.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAK1C,SAAS,yBAAyB,CAC9B,YAA0B,EAC1B,WAA8B,EAC9B,uBAA0C,OAAO,CAAC,EAAE,CAAC,OAAO;IAE5D,MAAM,SAAS,GAAgD,EAAE,CAAC;IAClE,MAAM,SAAS,GAAU,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAClF,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,MAAM,SAAS,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAkB,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,KAAK,EAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,OAAO,IAAI,OAAO,CAAsB,OAAO,CAAC,EAAE;YAC9C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACJ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,SAAS,EAAE,CAAC;YACZ,SAAS,GAAG,KAAK,CAAC;YAClB,oBAAoB,EAAE,CAAC;YACvB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAClC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAC9B,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAClC,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;IACL,CAAC,CAAC;IAEF,iBAAiB,EAAE,CAAC;IAEpB,OAAO;QACH,IAAI;YACA,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnD,CAAC;QACD,MAAM;YACF,UAAU,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,KAAU;YACZ,UAAU,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,CAAC,yBAAe,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;AACN,CAAC;AAGG,8DAAyB"}
1
+ {"version":3,"file":"event-emitter-to-async-iterator.js","sourceRoot":"","sources":["../../../src/pubsub/event-emitter-to-async-iterator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA0C;AAM1C,SAAS,yBAAyB,CAC9B,YAA0B,EAC1B,WAA8B,EAC9B,uBAA0C,OAAO,CAAC,EAAE,CAAC,OAAO,EAC5D,MAAc;IAEd,MAAM,SAAS,GAAgD,EAAE,CAAC;IAClE,MAAM,SAAS,GAAU,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAClF,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,MAAM,SAAS,GAAG,KAA2C,EAAE,0CAAtC,EAAE,OAAO,EAAE,KAAK,EAAkB;QACvD,MAAM,KAAK,GAAG,mDAAmD,CAAC;QAClE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,KAAK,EAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,WAAW,GAAG,2CAA2C,CAAC;QAChE,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAA,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,OAAO,IAAI,OAAO,CAAsB,OAAO,CAAC,EAAE;YAC9C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACJ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,SAAS,EAAE,CAAC;YACZ,SAAS,GAAG,KAAK,CAAC;YAClB,oBAAoB,EAAE,CAAC;YACvB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAClC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAC9B,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAClC,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;IACL,CAAC,CAAC;IAEF,iBAAiB,EAAE,CAAC;IAEpB,OAAO;QACH,IAAI;YACA,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnD,CAAC;QACD,MAAM;YACF,UAAU,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,KAAU;YACZ,UAAU,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,CAAC,yBAAe,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;AACN,CAAC;AAGG,8DAAyB"}
@@ -11,13 +11,11 @@ declare class PostgresPubSub extends PubSubEngine {
11
11
  private subscriptions;
12
12
  private subIdCounter;
13
13
  private commonMessageHandler;
14
- private triggerSubscriptionsCount;
15
14
  constructor(options?: PostgresPubSubOptions);
16
15
  private ensureTableExists;
17
16
  publish(triggerName: string, payload: any): Promise<void>;
18
17
  subscribe(triggerName: string, onMessage: (message: any) => void): Promise<number>;
19
18
  unsubscribe(subId: number): Promise<void>;
20
- cleanUpOldPayloads(): Promise<void>;
21
19
  asyncIterator<T>(triggers: string | string[]): AsyncIterator<T>;
22
20
  }
23
21
  export { PostgresPubSub, PostgresPubSubOptions };
@@ -43,7 +43,6 @@ class PostgresPubSub extends graphql_subscriptions_1.PubSubEngine {
43
43
  this.subscriptions = {};
44
44
  this.subIdCounter = 0;
45
45
  this.commonMessageHandler = commonMessageHandler || defaultCommonMessageHandler;
46
- this.triggerSubscriptionsCount = {};
47
46
  this.ensureTableExists();
48
47
  }
49
48
  ensureTableExists() {
@@ -61,34 +60,20 @@ class PostgresPubSub extends graphql_subscriptions_1.PubSubEngine {
61
60
  publish(triggerName, payload) {
62
61
  return __awaiter(this, void 0, void 0, function* () {
63
62
  const payloadString = JSON.stringify(payload);
64
- console.log("testing...");
65
63
  const result = yield this.client.query(`INSERT INTO pubsub_payloads (trigger, payload) VALUES ($1, $2) RETURNING id`, [triggerName, payloadString]);
66
- console.log(result);
67
64
  const id = result.rows[0].id;
68
- return this.ee.notify(triggerName, { id });
65
+ return this.ee.notify(triggerName, id.toString());
69
66
  });
70
67
  }
71
68
  subscribe(triggerName, onMessage) {
72
- const callback = (message) => __awaiter(this, void 0, void 0, function* () {
73
- if (message instanceof Error) {
74
- onMessage(message);
75
- }
76
- else {
77
- const id = message.payload.id;
78
- console.log(id);
79
- const result = yield this.client.query(`SELECT payload FROM pubsub_payloads WHERE id = $1`, [id]);
80
- console.log(result);
81
- const payload = result.rows[0].payload;
82
- onMessage(this.commonMessageHandler(JSON.parse(payload)));
83
- }
84
- });
69
+ const callback = (message) => {
70
+ onMessage(message instanceof Error
71
+ ? message
72
+ : this.commonMessageHandler(message.payload));
73
+ };
85
74
  this.ee.on(triggerName, callback);
86
75
  this.subIdCounter += 1;
87
76
  this.subscriptions[this.subIdCounter] = [triggerName, callback];
88
- if (!this.triggerSubscriptionsCount[triggerName]) {
89
- this.triggerSubscriptionsCount[triggerName] = 0;
90
- }
91
- this.triggerSubscriptionsCount[triggerName] += 1;
92
77
  return Promise.resolve(this.subIdCounter);
93
78
  }
94
79
  unsubscribe(subId) {
@@ -96,21 +81,10 @@ class PostgresPubSub extends graphql_subscriptions_1.PubSubEngine {
96
81
  const [triggerName, onMessage] = this.subscriptions[subId];
97
82
  delete this.subscriptions[subId];
98
83
  this.ee.removeListener(triggerName, onMessage);
99
- if (this.triggerSubscriptionsCount[triggerName]) {
100
- this.triggerSubscriptionsCount[triggerName] -= 1;
101
- if (this.triggerSubscriptionsCount[triggerName] === 0) {
102
- yield this.cleanUpOldPayloads();
103
- }
104
- }
105
- });
106
- }
107
- cleanUpOldPayloads() {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- yield this.client.query(`DELETE FROM pubsub_payloads WHERE created_at < NOW() - INTERVAL '3 days'`);
110
84
  });
111
85
  }
112
86
  asyncIterator(triggers) {
113
- return (0, event_emitter_to_async_iterator_1.eventEmitterAsyncIterator)(this.ee, triggers, this.commonMessageHandler);
87
+ return (0, event_emitter_to_async_iterator_1.eventEmitterAsyncIterator)(this.ee, triggers, this.commonMessageHandler, this.client);
114
88
  }
115
89
  }
116
90
  exports.PostgresPubSub = PostgresPubSub;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-pubsub.js","sourceRoot":"","sources":["../../../src/pubsub/postgres-pubsub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-pubsub.js","sourceRoot":"","sources":["../../../src/pubsub/postgres-pubsub.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { $$asyncIterator } from "iterall";
3
3
  import { EventEmitter } from "events";
4
+ import { Client } from "pg";
4
5
  type MessageHandler<T> = (message: T) => any;
5
- declare function eventEmitterAsyncIterator<T>(eventEmitter: EventEmitter, eventsNames: string | string[], commonMessageHandler?: MessageHandler<T>): {
6
+ declare function eventEmitterAsyncIterator<T>(eventEmitter: EventEmitter, eventsNames: string | string[], commonMessageHandler: MessageHandler<T> | undefined, client: Client): {
6
7
  next(): Promise<IteratorResult<any, any>>;
7
8
  return(): Promise<{
8
9
  value: undefined;
@@ -1,18 +1,31 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import { $$asyncIterator } from "iterall";
2
- function eventEmitterAsyncIterator(eventEmitter, eventsNames, commonMessageHandler = message => message) {
11
+ function eventEmitterAsyncIterator(eventEmitter, eventsNames, commonMessageHandler = message => message, client) {
3
12
  const pullQueue = [];
4
13
  const pushQueue = [];
5
14
  const eventsArray = typeof eventsNames === "string" ? [eventsNames] : eventsNames;
6
15
  let listening = true;
7
- const pushValue = ({ payload: event }) => {
8
- const value = commonMessageHandler(event);
16
+ const pushValue = (_a) => __awaiter(this, [_a], void 0, function* ({ payload: event }) {
17
+ const query = `SELECT payload FROM pubsub_payloads WHERE id = $1`;
18
+ const res = yield client.query(query, [event]);
19
+ const value = commonMessageHandler(res.rows[0].payload);
9
20
  if (pullQueue.length !== 0) {
10
21
  pullQueue.shift()({ value, done: false });
11
22
  }
12
23
  else {
13
24
  pushQueue.push(value);
14
25
  }
15
- };
26
+ const deleteQuery = `DELETE FROM pubsub_payloads WHERE id = $1`;
27
+ yield client.query(deleteQuery, [event]);
28
+ });
16
29
  const pullValue = () => {
17
30
  return new Promise(resolve => {
18
31
  if (pushQueue.length !== 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"event-emitter-to-async-iterator.js","sourceRoot":"","sources":["../../../src/pubsub/event-emitter-to-async-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK1C,SAAS,yBAAyB,CAC9B,YAA0B,EAC1B,WAA8B,EAC9B,uBAA0C,OAAO,CAAC,EAAE,CAAC,OAAO;IAE5D,MAAM,SAAS,GAAgD,EAAE,CAAC;IAClE,MAAM,SAAS,GAAU,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAClF,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,MAAM,SAAS,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAkB,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,KAAK,EAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,OAAO,IAAI,OAAO,CAAsB,OAAO,CAAC,EAAE;YAC9C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACJ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,SAAS,EAAE,CAAC;YACZ,SAAS,GAAG,KAAK,CAAC;YAClB,oBAAoB,EAAE,CAAC;YACvB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAClC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAC9B,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAClC,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;IACL,CAAC,CAAC;IAEF,iBAAiB,EAAE,CAAC;IAEpB,OAAO;QACH,IAAI;YACA,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnD,CAAC;QACD,MAAM;YACF,UAAU,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,KAAU;YACZ,UAAU,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,CAAC,eAAe,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;AACN,CAAC;AAED,OAAO,EACH,yBAAyB,EAC5B,CAAC"}
1
+ {"version":3,"file":"event-emitter-to-async-iterator.js","sourceRoot":"","sources":["../../../src/pubsub/event-emitter-to-async-iterator.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,11 @@ declare class PostgresPubSub extends PubSubEngine {
11
11
  private subscriptions;
12
12
  private subIdCounter;
13
13
  private commonMessageHandler;
14
- private triggerSubscriptionsCount;
15
14
  constructor(options?: PostgresPubSubOptions);
16
15
  private ensureTableExists;
17
16
  publish(triggerName: string, payload: any): Promise<void>;
18
17
  subscribe(triggerName: string, onMessage: (message: any) => void): Promise<number>;
19
18
  unsubscribe(subId: number): Promise<void>;
20
- cleanUpOldPayloads(): Promise<void>;
21
19
  asyncIterator<T>(triggers: string | string[]): AsyncIterator<T>;
22
20
  }
23
21
  export { PostgresPubSub, PostgresPubSubOptions };
@@ -37,7 +37,6 @@ class PostgresPubSub extends PubSubEngine {
37
37
  this.subscriptions = {};
38
38
  this.subIdCounter = 0;
39
39
  this.commonMessageHandler = commonMessageHandler || defaultCommonMessageHandler;
40
- this.triggerSubscriptionsCount = {};
41
40
  this.ensureTableExists();
42
41
  }
43
42
  ensureTableExists() {
@@ -55,34 +54,20 @@ class PostgresPubSub extends PubSubEngine {
55
54
  publish(triggerName, payload) {
56
55
  return __awaiter(this, void 0, void 0, function* () {
57
56
  const payloadString = JSON.stringify(payload);
58
- console.log("testing...");
59
57
  const result = yield this.client.query(`INSERT INTO pubsub_payloads (trigger, payload) VALUES ($1, $2) RETURNING id`, [triggerName, payloadString]);
60
- console.log(result);
61
58
  const id = result.rows[0].id;
62
- return this.ee.notify(triggerName, { id });
59
+ return this.ee.notify(triggerName, id.toString());
63
60
  });
64
61
  }
65
62
  subscribe(triggerName, onMessage) {
66
- const callback = (message) => __awaiter(this, void 0, void 0, function* () {
67
- if (message instanceof Error) {
68
- onMessage(message);
69
- }
70
- else {
71
- const id = message.payload.id;
72
- console.log(id);
73
- const result = yield this.client.query(`SELECT payload FROM pubsub_payloads WHERE id = $1`, [id]);
74
- console.log(result);
75
- const payload = result.rows[0].payload;
76
- onMessage(this.commonMessageHandler(JSON.parse(payload)));
77
- }
78
- });
63
+ const callback = (message) => {
64
+ onMessage(message instanceof Error
65
+ ? message
66
+ : this.commonMessageHandler(message.payload));
67
+ };
79
68
  this.ee.on(triggerName, callback);
80
69
  this.subIdCounter += 1;
81
70
  this.subscriptions[this.subIdCounter] = [triggerName, callback];
82
- if (!this.triggerSubscriptionsCount[triggerName]) {
83
- this.triggerSubscriptionsCount[triggerName] = 0;
84
- }
85
- this.triggerSubscriptionsCount[triggerName] += 1;
86
71
  return Promise.resolve(this.subIdCounter);
87
72
  }
88
73
  unsubscribe(subId) {
@@ -90,21 +75,10 @@ class PostgresPubSub extends PubSubEngine {
90
75
  const [triggerName, onMessage] = this.subscriptions[subId];
91
76
  delete this.subscriptions[subId];
92
77
  this.ee.removeListener(triggerName, onMessage);
93
- if (this.triggerSubscriptionsCount[triggerName]) {
94
- this.triggerSubscriptionsCount[triggerName] -= 1;
95
- if (this.triggerSubscriptionsCount[triggerName] === 0) {
96
- yield this.cleanUpOldPayloads();
97
- }
98
- }
99
- });
100
- }
101
- cleanUpOldPayloads() {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- yield this.client.query(`DELETE FROM pubsub_payloads WHERE created_at < NOW() - INTERVAL '3 days'`);
104
78
  });
105
79
  }
106
80
  asyncIterator(triggers) {
107
- return eventEmitterAsyncIterator(this.ee, triggers, this.commonMessageHandler);
81
+ return eventEmitterAsyncIterator(this.ee, triggers, this.commonMessageHandler, this.client);
108
82
  }
109
83
  }
110
84
  export { PostgresPubSub };
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-pubsub.js","sourceRoot":"","sources":["../../../src/pubsub/postgres-pubsub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-pubsub.js","sourceRoot":"","sources":["../../../src/pubsub/postgres-pubsub.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphql-pg-subscriptions",
3
- "version": "3.1.8",
3
+ "version": "3.2.0",
4
4
  "description": "A graphql subscriptions implementation using postgres and apollo's graphql-subscriptions.",
5
5
  "homepage": "https://github.com/siamahnaf/graphql-pg-subscriptions",
6
6
  "main": "dist/cjs/index.js",