@fedify/postgres 2.3.0-dev.1005 → 2.3.0-dev.1013

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/dist/mq.cjs CHANGED
@@ -136,6 +136,24 @@ var PostgresMessageQueue = class {
136
136
  orderingKey
137
137
  });
138
138
  }
139
+ async getDepth() {
140
+ await this.initialize();
141
+ const result = await this.#sql`
142
+ SELECT
143
+ COUNT(*) AS queued,
144
+ COUNT(*) FILTER (
145
+ WHERE created + delay <= CURRENT_TIMESTAMP
146
+ ) AS ready
147
+ FROM ${this.#sql(this.#tableName)}
148
+ `;
149
+ const queued = Number(result[0].queued);
150
+ const ready = Number(result[0].ready);
151
+ return {
152
+ queued,
153
+ ready,
154
+ delayed: Math.max(0, queued - ready)
155
+ };
156
+ }
139
157
  async listen(handler, options = {}) {
140
158
  await this.initialize();
141
159
  const { signal } = options;
package/dist/mq.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "@fedify/fedify";
1
+ import { MessageQueue, MessageQueueDepth, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "@fedify/fedify";
2
2
  import { Sql } from "postgres";
3
3
 
4
4
  //#region src/mq.d.ts
@@ -64,6 +64,7 @@ declare class PostgresMessageQueue implements MessageQueue {
64
64
  constructor(sql: Sql<{}>, options?: PostgresMessageQueueOptions);
65
65
  enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
66
66
  enqueueMany(messages: readonly any[], options?: MessageQueueEnqueueOptions): Promise<void>;
67
+ getDepth(): Promise<MessageQueueDepth>;
67
68
  listen(handler: (message: any) => void | Promise<void>, options?: MessageQueueListenOptions): Promise<void>;
68
69
  /**
69
70
  * Initializes the message queue table if it does not already exist.
package/dist/mq.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { Sql } from "postgres";
3
- import { MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "@fedify/fedify";
3
+ import { MessageQueue, MessageQueueDepth, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "@fedify/fedify";
4
4
 
5
5
  //#region src/mq.d.ts
6
6
  /**
@@ -65,6 +65,7 @@ declare class PostgresMessageQueue implements MessageQueue {
65
65
  constructor(sql: Sql<{}>, options?: PostgresMessageQueueOptions);
66
66
  enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
67
67
  enqueueMany(messages: readonly any[], options?: MessageQueueEnqueueOptions): Promise<void>;
68
+ getDepth(): Promise<MessageQueueDepth>;
68
69
  listen(handler: (message: any) => void | Promise<void>, options?: MessageQueueListenOptions): Promise<void>;
69
70
  /**
70
71
  * Initializes the message queue table if it does not already exist.
package/dist/mq.js CHANGED
@@ -133,6 +133,24 @@ var PostgresMessageQueue = class {
133
133
  orderingKey
134
134
  });
135
135
  }
136
+ async getDepth() {
137
+ await this.initialize();
138
+ const result = await this.#sql`
139
+ SELECT
140
+ COUNT(*) AS queued,
141
+ COUNT(*) FILTER (
142
+ WHERE created + delay <= CURRENT_TIMESTAMP
143
+ ) AS ready
144
+ FROM ${this.#sql(this.#tableName)}
145
+ `;
146
+ const queued = Number(result[0].queued);
147
+ const ready = Number(result[0].ready);
148
+ return {
149
+ queued,
150
+ ready,
151
+ delayed: Math.max(0, queued - ready)
152
+ };
153
+ }
136
154
  async listen(handler, options = {}) {
137
155
  await this.initialize();
138
156
  const { signal } = options;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/postgres",
3
- "version": "2.3.0-dev.1005+16f9539d",
3
+ "version": "2.3.0-dev.1013+4aa6a88c",
4
4
  "description": "PostgreSQL drivers for Fedify",
5
5
  "keywords": [
6
6
  "fedify",
@@ -74,14 +74,14 @@
74
74
  },
75
75
  "peerDependencies": {
76
76
  "postgres": "^3.4.7",
77
- "@fedify/fedify": "^2.3.0-dev.1005+16f9539d"
77
+ "@fedify/fedify": "^2.3.0-dev.1013+4aa6a88c"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@std/async": "npm:@jsr/std__async@^1.0.13",
81
81
  "tsdown": "^0.21.6",
82
82
  "typescript": "^5.9.2",
83
83
  "@fedify/fixture": "^2.0.0",
84
- "@fedify/testing": "^2.3.0-dev.1005+16f9539d"
84
+ "@fedify/testing": "^2.3.0-dev.1013+4aa6a88c"
85
85
  },
86
86
  "scripts": {
87
87
  "build:self": "tsdown",