@fedify/postgres 0.1.0-dev.2 → 0.1.0-dev.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.
package/esm/src/mq.js CHANGED
@@ -11,6 +11,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
11
11
  };
12
12
  var _PostgresMessageQueue_sql, _PostgresMessageQueue_tableName, _PostgresMessageQueue_channelName, _PostgresMessageQueue_pollIntervalMs, _PostgresMessageQueue_initialized;
13
13
  import * as dntShim from "../_dnt.shims.js";
14
+ import postgres from "postgres";
14
15
  /**
15
16
  * A message queue that uses PostgreSQL as the underlying storage.
16
17
  *
@@ -58,6 +59,7 @@ export class PostgresMessageQueue {
58
59
  async listen(
59
60
  // deno-lint-ignore no-explicit-any
60
61
  handler, options = {}) {
62
+ await this.initialize();
61
63
  const { signal } = options;
62
64
  const poll = async () => {
63
65
  if (signal?.aborted)
@@ -122,7 +124,8 @@ export class PostgresMessageQueue {
122
124
  async initialize() {
123
125
  if (__classPrivateFieldGet(this, _PostgresMessageQueue_initialized, "f"))
124
126
  return;
125
- await __classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").bind(this) `
127
+ try {
128
+ await __classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").bind(this) `
126
129
  CREATE TABLE IF NOT EXISTS ${__classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").call(this, __classPrivateFieldGet(this, _PostgresMessageQueue_tableName, "f"))} (
127
130
  id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
128
131
  message jsonb NOT NULL,
@@ -130,6 +133,13 @@ export class PostgresMessageQueue {
130
133
  created timestamp with time zone DEFAULT CURRENT_TIMESTAMP
131
134
  );
132
135
  `;
136
+ }
137
+ catch (e) {
138
+ if (!(e instanceof postgres.PostgresError &&
139
+ e.constraint_name === "pg_type_typname_nsp_index")) {
140
+ throw e;
141
+ }
142
+ }
133
143
  __classPrivateFieldSet(this, _PostgresMessageQueue_initialized, true, "f");
134
144
  }
135
145
  /**
@@ -140,3 +150,4 @@ export class PostgresMessageQueue {
140
150
  }
141
151
  }
142
152
  _PostgresMessageQueue_sql = new WeakMap(), _PostgresMessageQueue_tableName = new WeakMap(), _PostgresMessageQueue_channelName = new WeakMap(), _PostgresMessageQueue_pollIntervalMs = new WeakMap(), _PostgresMessageQueue_initialized = new WeakMap();
153
+ // cSpell: ignore typname
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/postgres",
3
- "version": "0.1.0-dev.2+463ee4d6",
3
+ "version": "0.1.0-dev.3+bb96183e",
4
4
  "description": "PostgreSQL drivers for Fedify",
5
5
  "keywords": [
6
6
  "fedify",
package/script/src/mq.js CHANGED
@@ -33,10 +33,14 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
33
33
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
34
34
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
35
35
  };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
36
39
  var _PostgresMessageQueue_sql, _PostgresMessageQueue_tableName, _PostgresMessageQueue_channelName, _PostgresMessageQueue_pollIntervalMs, _PostgresMessageQueue_initialized;
37
40
  Object.defineProperty(exports, "__esModule", { value: true });
38
41
  exports.PostgresMessageQueue = void 0;
39
42
  const dntShim = __importStar(require("../_dnt.shims.js"));
43
+ const postgres_1 = __importDefault(require("postgres"));
40
44
  /**
41
45
  * A message queue that uses PostgreSQL as the underlying storage.
42
46
  *
@@ -84,6 +88,7 @@ class PostgresMessageQueue {
84
88
  async listen(
85
89
  // deno-lint-ignore no-explicit-any
86
90
  handler, options = {}) {
91
+ await this.initialize();
87
92
  const { signal } = options;
88
93
  const poll = async () => {
89
94
  if (signal?.aborted)
@@ -148,7 +153,8 @@ class PostgresMessageQueue {
148
153
  async initialize() {
149
154
  if (__classPrivateFieldGet(this, _PostgresMessageQueue_initialized, "f"))
150
155
  return;
151
- await __classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").bind(this) `
156
+ try {
157
+ await __classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").bind(this) `
152
158
  CREATE TABLE IF NOT EXISTS ${__classPrivateFieldGet(this, _PostgresMessageQueue_sql, "f").call(this, __classPrivateFieldGet(this, _PostgresMessageQueue_tableName, "f"))} (
153
159
  id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
154
160
  message jsonb NOT NULL,
@@ -156,6 +162,13 @@ class PostgresMessageQueue {
156
162
  created timestamp with time zone DEFAULT CURRENT_TIMESTAMP
157
163
  );
158
164
  `;
165
+ }
166
+ catch (e) {
167
+ if (!(e instanceof postgres_1.default.PostgresError &&
168
+ e.constraint_name === "pg_type_typname_nsp_index")) {
169
+ throw e;
170
+ }
171
+ }
159
172
  __classPrivateFieldSet(this, _PostgresMessageQueue_initialized, true, "f");
160
173
  }
161
174
  /**
@@ -167,3 +180,4 @@ class PostgresMessageQueue {
167
180
  }
168
181
  exports.PostgresMessageQueue = PostgresMessageQueue;
169
182
  _PostgresMessageQueue_sql = new WeakMap(), _PostgresMessageQueue_tableName = new WeakMap(), _PostgresMessageQueue_channelName = new WeakMap(), _PostgresMessageQueue_pollIntervalMs = new WeakMap(), _PostgresMessageQueue_initialized = new WeakMap();
183
+ // cSpell: ignore typname
@@ -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;AACxB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC;;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;;gBAUrD,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;IAUV,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;IAyDhB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
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;AACxB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC;;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;;gBAUrD,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;IAUV,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;IA0DhB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}