@prodforcode/event-forge-typeorm 1.0.1 → 1.0.2
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeorm-outbox.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/typeorm-outbox.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAuC,MAAM,SAAS,CAAC;AAS1E,qBAAa,uBAAwB,YAAW,iBAAiB;IAGnD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEhC,UAAU,EAAE,UAAU;IAI7C,MAAM,CACV,GAAG,EAAE,sBAAsB,EAC3B,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,aAAa,CAAC;IAoBnB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"typeorm-outbox.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/typeorm-outbox.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAuC,MAAM,SAAS,CAAC;AAS1E,qBAAa,uBAAwB,YAAW,iBAAiB;IAGnD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEhC,UAAU,EAAE,UAAU;IAI7C,MAAM,CACV,GAAG,EAAE,sBAAsB,EAC3B,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,aAAa,CAAC;IAoBnB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAwC9E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBnD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5C,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAKlF"}
|
|
@@ -29,29 +29,32 @@ class TypeOrmOutboxRepository {
|
|
|
29
29
|
return saved;
|
|
30
30
|
}
|
|
31
31
|
async fetchAndLockPending(limit, lockerId) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
32
|
+
return this.dataSource.transaction(async (manager) => {
|
|
33
|
+
const now = new Date();
|
|
34
|
+
const query = manager
|
|
35
|
+
.getRepository(outbox_message_entity_1.OutboxMessageEntity)
|
|
36
|
+
.createQueryBuilder('outbox')
|
|
37
|
+
.where('outbox.status IN (:...statuses)', {
|
|
38
|
+
statuses: [event_forge_core_1.OutboxMessageStatus.PENDING, event_forge_core_1.OutboxMessageStatus.FAILED],
|
|
39
|
+
})
|
|
40
|
+
.andWhere('(outbox.scheduledAt IS NULL OR outbox.scheduledAt <= :now)', { now })
|
|
41
|
+
.andWhere('(outbox.lockedAt IS NULL OR outbox.lockedAt < :lockTimeout)', { lockTimeout: new Date(Date.now() - 5 * 60 * 1000) })
|
|
42
|
+
.orderBy('outbox.createdAt', 'ASC')
|
|
43
|
+
.limit(limit)
|
|
44
|
+
.setLock('pessimistic_write')
|
|
45
|
+
.setOnLocked('skip_locked');
|
|
46
|
+
const messages = await query.getMany();
|
|
47
|
+
if (messages.length > 0) {
|
|
48
|
+
const ids = messages.map((m) => m.id);
|
|
49
|
+
await manager.getRepository(outbox_message_entity_1.OutboxMessageEntity).update(ids, {
|
|
50
|
+
status: event_forge_core_1.OutboxMessageStatus.PROCESSING,
|
|
51
|
+
lockedBy: lockerId,
|
|
52
|
+
lockedAt: new Date(),
|
|
53
|
+
});
|
|
54
|
+
return manager.getRepository(outbox_message_entity_1.OutboxMessageEntity).findByIds(ids);
|
|
55
|
+
}
|
|
56
|
+
return [];
|
|
57
|
+
});
|
|
55
58
|
}
|
|
56
59
|
async markPublished(id) {
|
|
57
60
|
await this.repository.update(id, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeorm-outbox.repository.js","sourceRoot":"","sources":["../../src/repositories/typeorm-outbox.repository.ts"],"names":[],"mappings":";;;AAAA,oEAKuC;AACvC,qCAA0E;AAG1E,6EAAwE;AAMxE,MAAa,uBAAuB;IAGL;IAFZ,UAAU,CAAkC;IAE7D,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,2CAAmB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAA2B,EAC3B,kBAA4B;QAE5B,MAAM,aAAa,GAAG,kBAA+C,CAAC;QACtE,MAAM,IAAI,GAAG,aAAa,EAAE,aAAa,CAAC,2CAAmB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;QAElF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC;YAC/B,MAAM,EAAE,sCAAmB,CAAC,OAAO;YACnC,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,QAAgB;QACvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"typeorm-outbox.repository.js","sourceRoot":"","sources":["../../src/repositories/typeorm-outbox.repository.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prodforcode/event-forge-typeorm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "TypeORM adapter for Universal Inbox-Outbox Pattern (PostgreSQL)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"commander": "^14.0.2",
|
|
25
25
|
"typeorm": "^0.3.17",
|
|
26
|
-
"@prodforcode/event-forge-core": "1.0.
|
|
26
|
+
"@prodforcode/event-forge-core": "1.0.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/better-sqlite3": "^7.6.8",
|