@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 +32 -0
- package/package.json +3 -3
- package/script/src/mq.js +32 -0
- package/types/src/mq.d.ts +1 -0
- package/types/src/mq.d.ts.map +1 -1
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.
|
|
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": "
|
|
64
|
-
"@logtape/logtape": "^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.
|
package/types/src/mq.d.ts.map
CHANGED
|
@@ -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"}
|