@orkow/common 0.0.31 → 0.0.33
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/events/base-listener.d.ts +20 -0
- package/dist/events/base-listener.d.ts.map +1 -0
- package/dist/events/base-listener.js +35 -0
- package/dist/events/base-publisher.d.ts +14 -0
- package/dist/events/base-publisher.d.ts.map +1 -0
- package/dist/events/base-publisher.js +13 -0
- package/dist/events/subjects.d.ts +7 -0
- package/dist/events/subjects.d.ts.map +1 -0
- package/dist/events/subjects.js +10 -0
- package/dist/events/user-created-event.d.ts +9 -0
- package/dist/events/user-created-event.d.ts.map +1 -0
- package/dist/events/user-created-event.js +2 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/package.json +3 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NatsConnection } from '@nats-io/transport-node';
|
|
2
|
+
import { JsMsg } from '@nats-io/jetstream';
|
|
3
|
+
import { Subjects } from './subjects';
|
|
4
|
+
interface Event {
|
|
5
|
+
subject: Subjects;
|
|
6
|
+
data: any;
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class Listener<T extends Event> {
|
|
9
|
+
abstract subject: T['subject'];
|
|
10
|
+
abstract queueGroupName: string;
|
|
11
|
+
abstract streamName: string;
|
|
12
|
+
abstract onMessage(data: T['data'], msg: JsMsg): void;
|
|
13
|
+
private client;
|
|
14
|
+
protected ackWait: number;
|
|
15
|
+
constructor(client: NatsConnection);
|
|
16
|
+
listen(): Promise<void>;
|
|
17
|
+
parseMessage(msg: JsMsg): any;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=base-listener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-listener.d.ts","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAIL,KAAK,EACN,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,UAAU,KAAK;IACb,OAAO,EAAE,QAAQ,CAAA;IACjB,IAAI,EAAE,GAAG,CAAA;CACV;AAED,8BAAsB,QAAQ,CAAC,CAAC,SAAS,KAAK;IAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IACrD,OAAO,CAAC,MAAM,CAAgB;IAC9B,SAAS,CAAC,OAAO,SAAW;gBAEhB,MAAM,EAAE,cAAc;IAI5B,MAAM;IAwBZ,YAAY,CAAC,GAAG,EAAE,KAAK;CAMxB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Listener = void 0;
|
|
4
|
+
const jetstream_1 = require("@nats-io/jetstream");
|
|
5
|
+
class Listener {
|
|
6
|
+
client;
|
|
7
|
+
ackWait = 5 * 1000;
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
async listen() {
|
|
12
|
+
const jsm = await (0, jetstream_1.jetstreamManager)(this.client);
|
|
13
|
+
await jsm.consumers.add(this.streamName, {
|
|
14
|
+
ack_policy: jetstream_1.AckPolicy.Explicit,
|
|
15
|
+
durable_name: this.queueGroupName,
|
|
16
|
+
ack_wait: this.ackWait,
|
|
17
|
+
});
|
|
18
|
+
const js = (0, jetstream_1.jetstream)(this.client);
|
|
19
|
+
const c2 = await js.consumers.get(this.streamName, this.queueGroupName);
|
|
20
|
+
const iter = await c2.fetch({ max_messages: 3 });
|
|
21
|
+
for await (const m of iter) {
|
|
22
|
+
console.log(`Message received: ${m.subject} / ${this.queueGroupName}`);
|
|
23
|
+
const parsedData = this.parseMessage(m);
|
|
24
|
+
this.onMessage(parsedData, m);
|
|
25
|
+
m.ack();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
parseMessage(msg) {
|
|
29
|
+
const data = msg.data;
|
|
30
|
+
return typeof data === 'string'
|
|
31
|
+
? JSON.parse(data)
|
|
32
|
+
: JSON.parse(data.toString());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.Listener = Listener;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { JetStreamClient } from '@nats-io/jetstream';
|
|
2
|
+
import { Subjects } from './subjects';
|
|
3
|
+
interface Event {
|
|
4
|
+
subject: Subjects;
|
|
5
|
+
data: any;
|
|
6
|
+
}
|
|
7
|
+
export declare abstract class Publisher<T extends Event> {
|
|
8
|
+
abstract subject: T['subject'];
|
|
9
|
+
private client;
|
|
10
|
+
constructor(client: JetStreamClient);
|
|
11
|
+
publish(data: T['data']): Promise<import("@nats-io/jetstream").PubAck>;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=base-publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-publisher.d.ts","sourceRoot":"","sources":["../../src/events/base-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,UAAU,KAAK;IACb,OAAO,EAAE,QAAQ,CAAA;IACjB,IAAI,EAAE,GAAG,CAAA;CACV;AAED,8BAAsB,SAAS,CAAC,CAAC,SAAS,KAAK;IAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;IAC9B,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,eAAe;IAInC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;CAGxB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Publisher = void 0;
|
|
4
|
+
class Publisher {
|
|
5
|
+
client;
|
|
6
|
+
constructor(client) {
|
|
7
|
+
this.client = client;
|
|
8
|
+
}
|
|
9
|
+
publish(data) {
|
|
10
|
+
return this.client.publish(this.subject, JSON.stringify(data));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Publisher = Publisher;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../../src/events/subjects.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAElB,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAG5B,eAAe,qBAAqB;IACpC,eAAe,qBAAqB;CACrC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Subjects = void 0;
|
|
4
|
+
var Subjects;
|
|
5
|
+
(function (Subjects) {
|
|
6
|
+
Subjects["UserCreated"] = "user.created";
|
|
7
|
+
Subjects["UserUpdated"] = "user.updated";
|
|
8
|
+
Subjects["ConsumerCreated"] = "consumer.created";
|
|
9
|
+
Subjects["ConsumerUpdated"] = "consumer.updated";
|
|
10
|
+
})(Subjects || (exports.Subjects = Subjects = {}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-created-event.d.ts","sourceRoot":"","sources":["../../src/events/user-created-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAA;IAC7B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAA;QACV,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,9 @@ export * from './utils/getRequestId';
|
|
|
3
3
|
export * from './utils/getUserId';
|
|
4
4
|
export * from './utils/getUserType';
|
|
5
5
|
export * from './utils/hashPassword';
|
|
6
|
+
export * from './events/base-listener';
|
|
7
|
+
export * from './events/base-publisher';
|
|
8
|
+
export * from './events/subjects';
|
|
9
|
+
export * from './events/user-created-event';
|
|
6
10
|
export declare const log: (str: any) => void;
|
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AAEpC,eAAO,MAAM,GAAG,GAAI,KAAK,GAAG,SAE3B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAE3C,eAAO,MAAM,GAAG,GAAI,KAAK,GAAG,SAE3B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,10 @@ __exportStar(require("./utils/getRequestId"), exports);
|
|
|
20
20
|
__exportStar(require("./utils/getUserId"), exports);
|
|
21
21
|
__exportStar(require("./utils/getUserType"), exports);
|
|
22
22
|
__exportStar(require("./utils/hashPassword"), exports);
|
|
23
|
+
__exportStar(require("./events/base-listener"), exports);
|
|
24
|
+
__exportStar(require("./events/base-publisher"), exports);
|
|
25
|
+
__exportStar(require("./events/subjects"), exports);
|
|
26
|
+
__exportStar(require("./events/user-created-event"), exports);
|
|
23
27
|
const log = (str) => {
|
|
24
28
|
console.log('logger: ' + str);
|
|
25
29
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orkow/common",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.33",
|
|
4
4
|
"description": "Common utils.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
"pub": "git add . && git commit -m \"Updates\" && git push origin main && npm version patch && npm run build && npm publish"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
+
"@nats-io/jetstream": "^3.2.0",
|
|
22
|
+
"@nats-io/transport-node": "^3.2.0",
|
|
21
23
|
"bcryptjs": "^3.0.3",
|
|
22
24
|
"graphql": "^16.12.0",
|
|
23
25
|
"jsonwebtoken": "^9.0.3"
|