@hexaijs/postgres 0.3.0 → 0.5.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 +78 -24
- package/dist/helpers-vPAudN_S.d.ts +125 -0
- package/dist/index.d.ts +64 -7
- package/dist/index.js +828 -28
- package/dist/index.js.map +1 -1
- package/dist/test.d.ts +13 -12
- package/dist/test.js +683 -246
- package/dist/test.js.map +1 -1
- package/package.json +8 -7
- package/dist/config/index.d.ts +0 -3
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -19
- package/dist/config/index.js.map +0 -1
- package/dist/config/postgres-config-spec.d.ts +0 -32
- package/dist/config/postgres-config-spec.d.ts.map +0 -1
- package/dist/config/postgres-config-spec.js +0 -49
- package/dist/config/postgres-config-spec.js.map +0 -1
- package/dist/config/postgres-config.d.ts +0 -59
- package/dist/config/postgres-config.d.ts.map +0 -1
- package/dist/config/postgres-config.js +0 -181
- package/dist/config/postgres-config.js.map +0 -1
- package/dist/helpers.d.ts +0 -57
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js +0 -276
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/postgres-event-store.d.ts +0 -18
- package/dist/postgres-event-store.d.ts.map +0 -1
- package/dist/postgres-event-store.js +0 -83
- package/dist/postgres-event-store.js.map +0 -1
- package/dist/postgres-unit-of-work.d.ts +0 -18
- package/dist/postgres-unit-of-work.d.ts.map +0 -1
- package/dist/postgres-unit-of-work.js +0 -265
- package/dist/postgres-unit-of-work.js.map +0 -1
- package/dist/run-hexai-migrations.d.ts +0 -3
- package/dist/run-hexai-migrations.d.ts.map +0 -1
- package/dist/run-hexai-migrations.js +0 -17
- package/dist/run-hexai-migrations.js.map +0 -1
- package/dist/run-migrations.d.ts +0 -11
- package/dist/run-migrations.d.ts.map +0 -1
- package/dist/run-migrations.js +0 -202
- package/dist/run-migrations.js.map +0 -1
- package/dist/test-fixtures/config.d.ts +0 -5
- package/dist/test-fixtures/config.d.ts.map +0 -1
- package/dist/test-fixtures/config.js +0 -14
- package/dist/test-fixtures/config.js.map +0 -1
- package/dist/test-fixtures/hooks.d.ts +0 -8
- package/dist/test-fixtures/hooks.d.ts.map +0 -1
- package/dist/test-fixtures/hooks.js +0 -77
- package/dist/test-fixtures/hooks.js.map +0 -1
- package/dist/test-fixtures/index.d.ts +0 -3
- package/dist/test-fixtures/index.d.ts.map +0 -1
- package/dist/test-fixtures/index.js +0 -19
- package/dist/test-fixtures/index.js.map +0 -1
- package/dist/test.d.ts.map +0 -1
- package/dist/types.d.ts +0 -14
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -11
- package/dist/types.js.map +0 -1
package/dist/helpers.js
DELETED
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.TableManager = exports.MigrationManager = exports.DatabaseManager = exports.ClientWrapper = void 0;
|
|
40
|
-
exports.runInsideTransaction = runInsideTransaction;
|
|
41
|
-
exports.ensureConnection = ensureConnection;
|
|
42
|
-
exports.isDatabaseError = isDatabaseError;
|
|
43
|
-
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
44
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
45
|
-
const pg = __importStar(require("pg"));
|
|
46
|
-
const config_1 = require("./config");
|
|
47
|
-
class ClientWrapper {
|
|
48
|
-
client;
|
|
49
|
-
getClient() {
|
|
50
|
-
return this.client;
|
|
51
|
-
}
|
|
52
|
-
constructor(urlOrClient) {
|
|
53
|
-
if (urlOrClient instanceof config_1.PostgresConfig ||
|
|
54
|
-
typeof urlOrClient === "string") {
|
|
55
|
-
this.client = new pg.Client({
|
|
56
|
-
connectionString: urlOrClient.toString(),
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
this.client = urlOrClient;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
async withClient(work) {
|
|
64
|
-
await ensureConnection(this.client);
|
|
65
|
-
return work(this.client);
|
|
66
|
-
}
|
|
67
|
-
async query(query, params) {
|
|
68
|
-
const result = await this.withClient((client) => client.query(query, params));
|
|
69
|
-
return result.rows;
|
|
70
|
-
}
|
|
71
|
-
async close() {
|
|
72
|
-
await this.client.end();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.ClientWrapper = ClientWrapper;
|
|
76
|
-
class DatabaseManager extends ClientWrapper {
|
|
77
|
-
async createDatabase(name) {
|
|
78
|
-
const exists = await this.query(`SELECT 1 FROM pg_database WHERE datname = '${name}'`);
|
|
79
|
-
if (exists.length === 0) {
|
|
80
|
-
await this.client.query(`CREATE DATABASE ${name}`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
async dropDatabase(name) {
|
|
84
|
-
await this.query(`DROP DATABASE IF EXISTS ${name}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.DatabaseManager = DatabaseManager;
|
|
88
|
-
class MigrationManager extends ClientWrapper {
|
|
89
|
-
namespace;
|
|
90
|
-
tableManager;
|
|
91
|
-
static MIGRATION_TABLE = [
|
|
92
|
-
"hexai__migrations",
|
|
93
|
-
[
|
|
94
|
-
{
|
|
95
|
-
name: "name",
|
|
96
|
-
property: "VARCHAR(255) NOT NULL",
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: "applied_at",
|
|
100
|
-
property: "TIMESTAMP NOT NULL DEFAULT NOW()",
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
|
-
];
|
|
104
|
-
static withNamespace(namespace, name) {
|
|
105
|
-
return namespace ? `${namespace}__${name}` : name;
|
|
106
|
-
}
|
|
107
|
-
static stripNamespace(namespace, name) {
|
|
108
|
-
return namespace ? name.replace(`${namespace}__`, "") : name;
|
|
109
|
-
}
|
|
110
|
-
static hasNamespace(namespace, name) {
|
|
111
|
-
return namespace ? name.startsWith(`${namespace}__`) : false;
|
|
112
|
-
}
|
|
113
|
-
constructor(urlOrClient, namespace) {
|
|
114
|
-
super(urlOrClient);
|
|
115
|
-
this.namespace = namespace;
|
|
116
|
-
this.tableManager = new TableManager(this.client);
|
|
117
|
-
}
|
|
118
|
-
async open() {
|
|
119
|
-
await this.ensureMigrationTableCreated();
|
|
120
|
-
}
|
|
121
|
-
async ensureMigrationTableCreated() {
|
|
122
|
-
const exists = await this.tableManager.tableExists(MigrationManager.MIGRATION_TABLE[0]);
|
|
123
|
-
if (exists) {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
await this.tableManager.createTable(...MigrationManager.MIGRATION_TABLE);
|
|
127
|
-
}
|
|
128
|
-
async getAppliedMigrations() {
|
|
129
|
-
const queryResult = await this.query(`SELECT name FROM hexai__migrations ORDER BY applied_at ASC;`);
|
|
130
|
-
let migrations = queryResult.map((row) => row.name);
|
|
131
|
-
migrations = this.stripNamespaceFromMigrations(migrations);
|
|
132
|
-
return migrations;
|
|
133
|
-
}
|
|
134
|
-
stripNamespaceFromMigrations(migrations) {
|
|
135
|
-
if (!this.namespace) {
|
|
136
|
-
return migrations;
|
|
137
|
-
}
|
|
138
|
-
return migrations
|
|
139
|
-
.filter((name) => MigrationManager.hasNamespace(this.namespace, name))
|
|
140
|
-
.map((name) => MigrationManager.stripNamespace(this.namespace, name));
|
|
141
|
-
}
|
|
142
|
-
async applyMigrations(migrations) {
|
|
143
|
-
const client = this.getClient();
|
|
144
|
-
await runInsideTransaction(client, async () => {
|
|
145
|
-
for (const migration of migrations) {
|
|
146
|
-
await Promise.all([
|
|
147
|
-
this.query(migration.sql),
|
|
148
|
-
this.markMigrationsAsApplied(migration.name),
|
|
149
|
-
]);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
async markMigrationsAsApplied(...migrations) {
|
|
154
|
-
for (const migration of migrations) {
|
|
155
|
-
await this.query(`INSERT INTO hexai__migrations (name) VALUES ($1);`, [migration]);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
async getMigrationsToApply(dir) {
|
|
159
|
-
const migrations = await this.getMigrationsFromFileSystem(dir);
|
|
160
|
-
const appliedMigrations = await this.getAppliedMigrations();
|
|
161
|
-
// check that all applied migrations are in the migrations directory
|
|
162
|
-
for (const appliedMigration of appliedMigrations) {
|
|
163
|
-
if (!migrations.includes(appliedMigration)) {
|
|
164
|
-
throw new Error(`Applied migration ${appliedMigration} not found in migrations directory`);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
const prevMaxMigrationIndex = Math.max(...migrations.map((name) => appliedMigrations.indexOf(name)));
|
|
168
|
-
const migrationsToApply = migrations.slice(prevMaxMigrationIndex + 1);
|
|
169
|
-
return Promise.all(migrationsToApply.map(async (migrationDir) => {
|
|
170
|
-
const migrationPath = node_path_1.default.join(dir, migrationDir, "migration.sql");
|
|
171
|
-
const sql = await promises_1.default.readFile(migrationPath, "utf-8");
|
|
172
|
-
return {
|
|
173
|
-
name: MigrationManager.withNamespace(this.namespace, migrationDir),
|
|
174
|
-
sql,
|
|
175
|
-
};
|
|
176
|
-
}));
|
|
177
|
-
}
|
|
178
|
-
async getMigrationsFromFileSystem(dir) {
|
|
179
|
-
const migrationDirs = (await promises_1.default.readdir(dir, { withFileTypes: true }))
|
|
180
|
-
.filter((dirent) => dirent.isDirectory())
|
|
181
|
-
.map((dirent) => dirent.name)
|
|
182
|
-
.sort();
|
|
183
|
-
return migrationDirs;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
exports.MigrationManager = MigrationManager;
|
|
187
|
-
class TableManager extends ClientWrapper {
|
|
188
|
-
async getTableSchema(tableName) {
|
|
189
|
-
const result = await this.query(`
|
|
190
|
-
SELECT
|
|
191
|
-
column_name AS column,
|
|
192
|
-
data_type AS type
|
|
193
|
-
FROM information_schema.columns
|
|
194
|
-
WHERE table_name = '${tableName}';
|
|
195
|
-
`);
|
|
196
|
-
return result.map((row) => ({
|
|
197
|
-
column: row.column,
|
|
198
|
-
type: row.type,
|
|
199
|
-
}));
|
|
200
|
-
}
|
|
201
|
-
async tableExists(tableName) {
|
|
202
|
-
const result = await this.query(`
|
|
203
|
-
SELECT
|
|
204
|
-
table_name
|
|
205
|
-
FROM information_schema.tables
|
|
206
|
-
WHERE table_name = '${tableName}';
|
|
207
|
-
`);
|
|
208
|
-
return result.length > 0;
|
|
209
|
-
}
|
|
210
|
-
async createTable(name, columns) {
|
|
211
|
-
if (await this.tableExists(name)) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
const query = `
|
|
215
|
-
CREATE TABLE ${name} (
|
|
216
|
-
${columns
|
|
217
|
-
.map((column) => `${column.name} ${column.property}`)
|
|
218
|
-
.join(", ")}
|
|
219
|
-
);
|
|
220
|
-
`;
|
|
221
|
-
await this.query(query);
|
|
222
|
-
}
|
|
223
|
-
async dropTable(name) {
|
|
224
|
-
await this.query(`DROP TABLE IF EXISTS "${name}";`);
|
|
225
|
-
}
|
|
226
|
-
async truncateTable(name) {
|
|
227
|
-
await this.query(`TRUNCATE TABLE "${name}" RESTART IDENTITY CASCADE;`);
|
|
228
|
-
}
|
|
229
|
-
async truncateAllTables() {
|
|
230
|
-
const tables = await this.getTableNames();
|
|
231
|
-
await Promise.all(tables.map((table) => this.truncateTable(table)));
|
|
232
|
-
}
|
|
233
|
-
async dropAllTables() {
|
|
234
|
-
const tables = await this.getTableNames();
|
|
235
|
-
await Promise.all(tables.map((table) => this.dropTable(table)));
|
|
236
|
-
}
|
|
237
|
-
async getTableNames() {
|
|
238
|
-
const result = await this.query(`
|
|
239
|
-
SELECT table_name
|
|
240
|
-
FROM information_schema.tables
|
|
241
|
-
WHERE table_schema = 'public'
|
|
242
|
-
AND table_type = 'BASE TABLE';
|
|
243
|
-
`);
|
|
244
|
-
return result.map((row) => row.table_name);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
exports.TableManager = TableManager;
|
|
248
|
-
async function runInsideTransaction(client, fn) {
|
|
249
|
-
await client.query("BEGIN");
|
|
250
|
-
try {
|
|
251
|
-
const result = await fn(client);
|
|
252
|
-
await client.query("COMMIT");
|
|
253
|
-
return result;
|
|
254
|
-
}
|
|
255
|
-
catch (e) {
|
|
256
|
-
await client.query("ROLLBACK");
|
|
257
|
-
throw e;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
async function ensureConnection(client) {
|
|
261
|
-
try {
|
|
262
|
-
await client.connect();
|
|
263
|
-
}
|
|
264
|
-
catch (e) {
|
|
265
|
-
if (e.message.includes("already")) {
|
|
266
|
-
// ignore
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
throw e;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
function isDatabaseError(e) {
|
|
274
|
-
return e instanceof Error && "code" in e;
|
|
275
|
-
}
|
|
276
|
-
//# sourceMappingURL=helpers.js.map
|
package/dist/helpers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+TA,oDAcC;AAED,4CAUC;AAED,0CAEC;AA7VD,gEAAkC;AAClC,0DAA6B;AAE7B,uCAAyB;AAEzB,qCAA0C;AAE1C,MAAa,aAAa;IACZ,MAAM,CAAY;IAErB,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,YAAY,WAAgD;QACxD,IACI,WAAW,YAAY,uBAAc;YACrC,OAAO,WAAW,KAAK,QAAQ,EACjC,CAAC;YACC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC;gBACxB,gBAAgB,EAAE,WAAW,CAAC,QAAQ,EAAE;aAC3C,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC9B,CAAC;IACL,CAAC;IAES,KAAK,CAAC,UAAU,CACtB,IAAuC;QAEvC,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,KAAK,CACd,KAAa,EACb,MAAc;QAEd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAC9B,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;CACJ;AAxCD,sCAwCC;AAED,MAAa,eAAgB,SAAQ,aAAa;IACvC,KAAK,CAAC,cAAc,CAAC,IAAY;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,8CAA8C,IAAI,GAAG,CACxD,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAY;QAClC,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;CACJ;AAdD,0CAcC;AAED,MAAa,gBAAiB,SAAQ,aAAa;IAoCnC;IAnCL,YAAY,CAAe;IAC1B,MAAM,CAAU,eAAe,GAMnC;QACA,mBAAmB;QACnB;YACI;gBACI,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,uBAAuB;aACpC;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,kCAAkC;aAC/C;SACJ;KACJ,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,SAA6B,EAAE,IAAY;QACpE,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,SAA6B,EAAE,IAAY;QACrE,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,SAA6B,EAAE,IAAY;QACnE,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IAED,YACI,WAA+B,EACvB,SAAkB;QAE1B,KAAK,CAAC,WAAW,CAAC,CAAC;QAFX,cAAS,GAAT,SAAS,CAAS;QAI1B,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,2BAA2B;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAC9C,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CACtC,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACT,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAC/B,GAAG,gBAAgB,CAAC,eAAe,CACtC,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAChC,6DAA6D,CAChE,CAAC;QAEF,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEpD,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAE3D,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,4BAA4B,CAAC,UAAoB;QACrD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,OAAO,UAAU;aACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACtD;aACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACV,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACxD,CAAC;IACV,CAAC;IAEM,KAAK,CAAC,eAAe,CACxB,UAGE;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,MAAM,OAAO,CAAC,GAAG,CAAC;oBACd,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;oBACzB,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC/C,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACjC,GAAG,UAAoB;QAEvB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,KAAK,CACZ,mDAAmD,EACnD,CAAC,SAAS,CAAC,CACd,CAAC;QACN,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,GAAW;QAMzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5D,oEAAoE;QACpE,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CACX,qBAAqB,gBAAgB,oCAAoC,CAC5E,CAAC;YACN,CAAC;QACL,CAAC;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAClC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC/D,CAAC;QAEF,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,GAAG,CACd,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;YACzC,MAAM,aAAa,GAAG,mBAAI,CAAC,IAAI,CAC3B,GAAG,EACH,YAAY,EACZ,eAAe,CAClB,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAEtD,OAAO;gBACH,IAAI,EAAE,gBAAgB,CAAC,aAAa,CAChC,IAAI,CAAC,SAAS,EACd,YAAY,CACf;gBACD,GAAG;aACN,CAAC;QACN,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,GAAW;QACjD,MAAM,aAAa,GAAG,CAAC,MAAM,kBAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;aACjE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aACxC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;aAC5B,IAAI,EAAE,CAAC;QAEZ,OAAO,aAAa,CAAC;IACzB,CAAC;;AArKL,4CAsKC;AAED,MAAa,YAAa,SAAQ,aAAa;IACpC,KAAK,CAAC,cAAc,CAAC,SAAiB;QAMzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;kCAKN,SAAS;SAClC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;SACjB,CAAC,CAAC,CAAC;IACR,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,SAAiB;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;;;;kCAIN,SAAS;SAClC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,WAAW,CACpB,IAAY,EACZ,OAGE;QAEF,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG;2BACK,IAAI;kBACb,OAAO;aACJ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;aACpD,IAAI,CAAC,IAAI,CAAC;;SAEtB,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAY;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,IAAI,IAAI,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAY;QACnC,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,6BAA6B,CAAC,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE1C,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE1C,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;SAK/B,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CACJ;AApFD,oCAoFC;AAEM,KAAK,UAAU,oBAAoB,CACtC,MAAiB,EACjB,EAAqC;IAErC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE5B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,MAAiB;IACpD,IAAI,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAK,CAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,SAAS;QACb,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAgB,eAAe,CAAC,CAAM;IAClC,OAAO,CAAC,YAAY,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACH,aAAa,EACb,eAAe,EACf,YAAY,EACZ,gBAAgB,GACnB,MAAM,WAAW,CAAC;AACnB,cAAc,wBAAwB,CAAC;AAGvC,cAAc,UAAU,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Client, PoolClient } from "pg";
|
|
2
|
-
import { Message, EventStore, EventStoreFetchResult, StoredEvent } from "@hexaijs/core";
|
|
3
|
-
type PgClient = Client | PoolClient;
|
|
4
|
-
export interface PostgresEventStoreConfig {
|
|
5
|
-
tableName?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare class PostgresEventStore implements EventStore {
|
|
8
|
-
private readonly client;
|
|
9
|
-
private readonly tableName;
|
|
10
|
-
constructor(client: PgClient, config?: PostgresEventStoreConfig);
|
|
11
|
-
store(event: Message): Promise<StoredEvent>;
|
|
12
|
-
storeAll(events: Message[]): Promise<StoredEvent[]>;
|
|
13
|
-
fetch(afterPosition: number, limit?: number): Promise<EventStoreFetchResult>;
|
|
14
|
-
getLastPosition(): Promise<number>;
|
|
15
|
-
private deserializeRow;
|
|
16
|
-
}
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=postgres-event-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-event-store.d.ts","sourceRoot":"","sources":["../src/postgres-event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EACH,OAAO,EACP,UAAU,EACV,qBAAqB,EACrB,WAAW,EACd,MAAM,eAAe,CAAC;AAEvB,KAAK,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAKpC,MAAM,WAAW,wBAAwB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AASD,qBAAa,kBAAmB,YAAW,UAAU;IAI7C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAH3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAGd,MAAM,EAAE,QAAQ,EACjC,MAAM,GAAE,wBAA6B;IAKnC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAoB3C,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAkCnD,KAAK,CACP,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC;IA4B3B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAQxC,OAAO,CAAC,cAAc;CAWzB"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PostgresEventStore = void 0;
|
|
4
|
-
const core_1 = require("@hexaijs/core");
|
|
5
|
-
const DEFAULT_TABLE_NAME = "hexai__events";
|
|
6
|
-
const COLUMNS_PER_EVENT = 3;
|
|
7
|
-
class PostgresEventStore {
|
|
8
|
-
client;
|
|
9
|
-
tableName;
|
|
10
|
-
constructor(client, config = {}) {
|
|
11
|
-
this.client = client;
|
|
12
|
-
this.tableName = config.tableName ?? DEFAULT_TABLE_NAME;
|
|
13
|
-
}
|
|
14
|
-
async store(event) {
|
|
15
|
-
const serialized = event.serialize();
|
|
16
|
-
const result = await this.client.query(`INSERT INTO ${this.tableName} (message_type, headers, payload)
|
|
17
|
-
VALUES ($1, $2, $3)
|
|
18
|
-
RETURNING position`, [
|
|
19
|
-
event.getMessageType(),
|
|
20
|
-
JSON.stringify(serialized.headers),
|
|
21
|
-
JSON.stringify(serialized.payload),
|
|
22
|
-
]);
|
|
23
|
-
return {
|
|
24
|
-
position: +result.rows[0].position,
|
|
25
|
-
event,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
async storeAll(events) {
|
|
29
|
-
if (events.length === 0) {
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
const values = [];
|
|
33
|
-
const placeholders = [];
|
|
34
|
-
events.forEach((event, index) => {
|
|
35
|
-
const serialized = event.serialize();
|
|
36
|
-
const offset = index * COLUMNS_PER_EVENT;
|
|
37
|
-
placeholders.push(`($${offset + 1}, $${offset + 2}, $${offset + 3})`);
|
|
38
|
-
values.push(event.getMessageType(), JSON.stringify(serialized.headers), JSON.stringify(serialized.payload));
|
|
39
|
-
});
|
|
40
|
-
const result = await this.client.query(`INSERT INTO ${this.tableName} (message_type, headers, payload)
|
|
41
|
-
VALUES ${placeholders.join(", ")}
|
|
42
|
-
RETURNING position`, values);
|
|
43
|
-
return result.rows.map((row, index) => ({
|
|
44
|
-
position: +row.position,
|
|
45
|
-
event: events[index],
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
async fetch(afterPosition, limit) {
|
|
49
|
-
const lastPosition = await this.getLastPosition();
|
|
50
|
-
let query = `
|
|
51
|
-
SELECT position, message_type, headers, payload
|
|
52
|
-
FROM ${this.tableName}
|
|
53
|
-
WHERE position > $1
|
|
54
|
-
ORDER BY position ASC
|
|
55
|
-
`;
|
|
56
|
-
const params = [afterPosition];
|
|
57
|
-
if (limit !== undefined) {
|
|
58
|
-
query += ` LIMIT $2`;
|
|
59
|
-
params.push(limit);
|
|
60
|
-
}
|
|
61
|
-
const result = await this.client.query(query, params);
|
|
62
|
-
const events = result.rows.map((row) => this.deserializeRow(row));
|
|
63
|
-
return {
|
|
64
|
-
events,
|
|
65
|
-
lastPosition,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
async getLastPosition() {
|
|
69
|
-
const result = await this.client.query(`SELECT MAX(position) as max FROM ${this.tableName}`);
|
|
70
|
-
return +(result.rows[0].max ?? 0);
|
|
71
|
-
}
|
|
72
|
-
deserializeRow(row) {
|
|
73
|
-
const headers = row.headers;
|
|
74
|
-
const payload = row.payload;
|
|
75
|
-
const event = core_1.Message.from(payload, headers);
|
|
76
|
-
return {
|
|
77
|
-
position: +row.position,
|
|
78
|
-
event,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
exports.PostgresEventStore = PostgresEventStore;
|
|
83
|
-
//# sourceMappingURL=postgres-event-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-event-store.js","sourceRoot":"","sources":["../src/postgres-event-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as pg from "pg";
|
|
2
|
-
import { QueryableUnitOfWork } from "@hexaijs/core";
|
|
3
|
-
import { ClientCleanUp, ClientFactory, PostgresTransactionOptions } from "./types";
|
|
4
|
-
export declare class PostgresUnitOfWork implements QueryableUnitOfWork<pg.Client, PostgresTransactionOptions> {
|
|
5
|
-
private clientFactory;
|
|
6
|
-
private clientCleanUp?;
|
|
7
|
-
private transactionStorage;
|
|
8
|
-
constructor(clientFactory: ClientFactory, clientCleanUp?: ClientCleanUp | undefined);
|
|
9
|
-
getClient(): pg.Client;
|
|
10
|
-
wrap<T = unknown>(fn: (client: pg.Client) => Promise<T>, options?: Partial<PostgresTransactionOptions>): Promise<T>;
|
|
11
|
-
query<T>(fn: (client: pg.Client) => Promise<T>): Promise<T>;
|
|
12
|
-
private getCurrentTransaction;
|
|
13
|
-
private resolveOptions;
|
|
14
|
-
private resolveTransaction;
|
|
15
|
-
private createTransaction;
|
|
16
|
-
private executeInContext;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=postgres-unit-of-work.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-unit-of-work.d.ts","sourceRoot":"","sources":["../src/postgres-unit-of-work.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAe,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EACH,aAAa,EACb,aAAa,EACb,0BAA0B,EAC7B,MAAM,SAAS,CAAC;AAGjB,qBAAa,kBACT,YAAW,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAKjE,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa,CAAC;IAJ1B,OAAO,CAAC,kBAAkB,CAAgD;gBAG9D,aAAa,EAAE,aAAa,EAC5B,aAAa,CAAC,EAAE,aAAa,YAAA;IAGlC,SAAS,IAAI,EAAE,CAAC,MAAM;IAUvB,IAAI,CAAC,CAAC,GAAG,OAAO,EAClB,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACrC,OAAO,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAClD,OAAO,CAAC,CAAC,CAAC;IASP,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAgBjE,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;CAQ3B"}
|