@fedify/postgres 0.3.0-dev.18 → 0.3.0-dev.20

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/esm/src/mq.js CHANGED
@@ -78,6 +78,38 @@ export class PostgresMessageQueue {
78
78
  message,
79
79
  });
80
80
  }
81
+ async enqueueMany(
82
+ // deno-lint-ignore no-explicit-any
83
+ messages, options) {
84
+ if (messages.length === 0)
85
+ return;
86
+ await this.initialize();
87
+ const delay = options?.delay ?? dntShim.Temporal.Duration.from({ seconds: 0 });
88
+ if (options?.delay) {
89
+ logger.debug("Enqueuing messages with a delay of {delay}...", {
90
+ delay,
91
+ messages,
92
+ });
93
+ }
94
+ else {
95
+ logger.debug("Enqueuing messages...", { messages });
96
+ }
97
+ for (const message of messages) {
98
+ await __classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").bind(this) `
99
+ INSERT INTO ${__classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").call(this, __classPrivateFieldGet(this, _PostgresMessageQueue_tableName, "f"))} (message, delay)
100
+ VALUES (
101
+ ${__classPrivateFieldGet(this, _PostgresMessageQueue_instances, "m", _PostgresMessageQueue_json).call(this, message)},
102
+ ${delay.toString()}
103
+ );
104
+ `;
105
+ }
106
+ logger.debug("Enqueued messages.", { messages });
107
+ await __classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").notify(__classPrivateFieldGet(this, _PostgresMessageQueue_channelName, "f"), delay.toString());
108
+ logger.debug("Notified the message queue channel {channelName}.", {
109
+ channelName: __classPrivateFieldGet(this, _PostgresMessageQueue_channelName, "f"),
110
+ messages,
111
+ });
112
+ }
81
113
  async listen(
82
114
  // deno-lint-ignore no-explicit-any
83
115
  handler, options = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/postgres",
3
- "version": "0.3.0-dev.18+ccf67837",
3
+ "version": "0.3.0-dev.20+84eaf26f",
4
4
  "description": "PostgreSQL drivers for Fedify",
5
5
  "keywords": [
6
6
  "fedify",
@@ -60,8 +60,8 @@
60
60
  "https://github.com/sponsors/dahlia"
61
61
  ],
62
62
  "dependencies": {
63
- "@fedify/fedify": "^1.0.0",
64
- "@logtape/logtape": "^0.8.0",
63
+ "@fedify/fedify": "1.5.0-dev.732",
64
+ "@logtape/logtape": "^0.9.0",
65
65
  "postgres": "^3.4.5",
66
66
  "@deno/shim-deno": "~0.18.0",
67
67
  "@js-temporal/polyfill": "^0.4.4"
package/script/src/mq.js CHANGED
@@ -107,6 +107,38 @@ class PostgresMessageQueue {
107
107
  message,
108
108
  });
109
109
  }
110
+ async enqueueMany(
111
+ // deno-lint-ignore no-explicit-any
112
+ messages, options) {
113
+ if (messages.length === 0)
114
+ return;
115
+ await this.initialize();
116
+ const delay = options?.delay ?? dntShim.Temporal.Duration.from({ seconds: 0 });
117
+ if (options?.delay) {
118
+ logger.debug("Enqueuing messages with a delay of {delay}...", {
119
+ delay,
120
+ messages,
121
+ });
122
+ }
123
+ else {
124
+ logger.debug("Enqueuing messages...", { messages });
125
+ }
126
+ for (const message of messages) {
127
+ await __classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").bind(this) `
128
+ INSERT INTO ${__classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").call(this, __classPrivateFieldGet(this, _PostgresMessageQueue_tableName, "f"))} (message, delay)
129
+ VALUES (
130
+ ${__classPrivateFieldGet(this, _PostgresMessageQueue_instances, "m", _PostgresMessageQueue_json).call(this, message)},
131
+ ${delay.toString()}
132
+ );
133
+ `;
134
+ }
135
+ logger.debug("Enqueued messages.", { messages });
136
+ await __classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").notify(__classPrivateFieldGet(this, _PostgresMessageQueue_channelName, "f"), delay.toString());
137
+ logger.debug("Notified the message queue channel {channelName}.", {
138
+ channelName: __classPrivateFieldGet(this, _PostgresMessageQueue_channelName, "f"),
139
+ messages,
140
+ });
141
+ }
110
142
  async listen(
111
143
  // deno-lint-ignore no-explicit-any
112
144
  handler, options = {}) {
package/types/src/mq.d.ts CHANGED
@@ -49,6 +49,7 @@ export declare class PostgresMessageQueue implements MessageQueue {
49
49
  #private;
50
50
  constructor(sql: Sql<{}>, options?: PostgresMessageQueueOptions);
51
51
  enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
52
+ enqueueMany(messages: any[], options?: MessageQueueEnqueueOptions): Promise<void>;
52
53
  listen(handler: (message: any) => void | Promise<void>, options?: MessageQueueListenOptions): Promise<void>;
53
54
  /**
54
55
  * Initializes the message queue table if it does not already exist.
@@ -1 +1 @@
1
- {"version":3,"file":"mq.d.ts","sourceRoot":"","sources":["../../src/src/mq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAwB,GAAG,EAAE,MAAM,UAAU,CAAC;AAM1D;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;CAC1E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,oBAAqB,YAAW,YAAY;;gBAWrD,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EACZ,OAAO,GAAE,2BAAgC;IAWrC,OAAO,CAEX,OAAO,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,IAAI,CAAC;IA0BV,MAAM,CAEV,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC/C,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,IAAI,CAAC;IA8DhB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ5B"}
1
+ {"version":3,"file":"mq.d.ts","sourceRoot":"","sources":["../../src/src/mq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAwB,GAAG,EAAE,MAAM,UAAU,CAAC;AAM1D;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;CAC1E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,oBAAqB,YAAW,YAAY;;gBAWrD,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EACZ,OAAO,GAAE,2BAAgC;IAWrC,OAAO,CAEX,OAAO,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,IAAI,CAAC;IA0BV,WAAW,CAEf,QAAQ,EAAE,GAAG,EAAE,EACf,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,IAAI,CAAC;IA6BV,MAAM,CAEV,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC/C,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,IAAI,CAAC;IA8DhB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ5B"}