equipped 5.0.0 → 5.0.1
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/CHANGELOG.md +2 -0
- package/lib/cache/base.js +1 -5
- package/lib/cache/base.js.map +1 -1
- package/lib/cache/index.js +3 -19
- package/lib/cache/index.js.map +1 -1
- package/lib/cache/pipes.js +8 -11
- package/lib/cache/pipes.js.map +1 -1
- package/lib/cache/types/redis.js +17 -20
- package/lib/cache/types/redis.js.map +1 -1
- package/lib/dbs/base/_instance.js +18 -37
- package/lib/dbs/base/_instance.js.map +1 -1
- package/lib/dbs/base/core.js +1 -2
- package/lib/dbs/base/types.js +1 -2
- package/lib/dbs/index.js +6 -22
- package/lib/dbs/index.js.map +1 -1
- package/lib/dbs/mongo/api.js +10 -13
- package/lib/dbs/mongo/api.js.map +1 -1
- package/lib/dbs/mongo/changes.js +17 -34
- package/lib/dbs/mongo/changes.js.map +1 -1
- package/lib/dbs/mongo/index.js +23 -39
- package/lib/dbs/mongo/index.js.map +1 -1
- package/lib/dbs/mongo/query.js +4 -8
- package/lib/dbs/mongo/query.js.map +1 -1
- package/lib/dbs/pipes.js +42 -48
- package/lib/dbs/pipes.js.map +1 -1
- package/lib/errors/equippedError.js +4 -5
- package/lib/errors/equippedError.js.map +1 -1
- package/lib/errors/index.js +9 -25
- package/lib/errors/index.js.map +1 -1
- package/lib/errors/requestError.js +4 -6
- package/lib/errors/requestError.js.map +1 -1
- package/lib/errors/types/authorizationExpired.js +4 -8
- package/lib/errors/types/authorizationExpired.js.map +1 -1
- package/lib/errors/types/badRequestError.js +4 -8
- package/lib/errors/types/badRequestError.js.map +1 -1
- package/lib/errors/types/notAuthenticatedError.js +4 -8
- package/lib/errors/types/notAuthenticatedError.js.map +1 -1
- package/lib/errors/types/notAuthorizedError.js +4 -8
- package/lib/errors/types/notAuthorizedError.js.map +1 -1
- package/lib/errors/types/notFoundError.js +4 -8
- package/lib/errors/types/notFoundError.js.map +1 -1
- package/lib/errors/types/refreshTokenMisusedError.js +4 -8
- package/lib/errors/types/refreshTokenMisusedError.js.map +1 -1
- package/lib/errors/types/validationError.js +4 -8
- package/lib/errors/types/validationError.js.map +1 -1
- package/lib/events/base.js +2 -6
- package/lib/events/base.js.map +1 -1
- package/lib/events/index.js +4 -20
- package/lib/events/index.js.map +1 -1
- package/lib/events/pipes.js +13 -16
- package/lib/events/pipes.js.map +1 -1
- package/lib/events/types/kafka.js +41 -59
- package/lib/events/types/kafka.js.map +1 -1
- package/lib/events/types/rabbitmq.js +21 -38
- package/lib/events/types/rabbitmq.js.map +1 -1
- package/lib/index.js +1 -17
- package/lib/index.js.map +1 -1
- package/lib/instance/hooks.js +1 -4
- package/lib/instance/hooks.js.map +1 -1
- package/lib/instance/index.js +40 -54
- package/lib/instance/index.js.map +1 -1
- package/lib/instance/settings.js +66 -74
- package/lib/instance/settings.js.map +1 -1
- package/lib/jobs/index.js +2 -18
- package/lib/jobs/index.js.map +1 -1
- package/lib/jobs/pipes.js +5 -8
- package/lib/jobs/pipes.js.map +1 -1
- package/lib/jobs/types/redis.js +43 -61
- package/lib/jobs/types/redis.js.map +1 -1
- package/lib/server/impls/base.js +136 -152
- package/lib/server/impls/base.js.map +1 -1
- package/lib/server/impls/express.js +35 -55
- package/lib/server/impls/express.js.map +1 -1
- package/lib/server/impls/fastify.js +29 -36
- package/lib/server/impls/fastify.js.map +1 -1
- package/lib/server/index.js +9 -25
- package/lib/server/index.js.map +1 -1
- package/lib/server/middlewares/index.js +1 -17
- package/lib/server/middlewares/index.js.map +1 -1
- package/lib/server/middlewares/parseAuthUser.js +6 -9
- package/lib/server/middlewares/parseAuthUser.js.map +1 -1
- package/lib/server/middlewares/requireAuthUser.js +13 -16
- package/lib/server/middlewares/requireAuthUser.js.map +1 -1
- package/lib/server/openapi.js +118 -130
- package/lib/server/openapi.js.map +1 -1
- package/lib/server/pipes.js +27 -30
- package/lib/server/pipes.js.map +1 -1
- package/lib/server/requests-auth/apiKeys.js +1 -5
- package/lib/server/requests-auth/apiKeys.js.map +1 -1
- package/lib/server/requests-auth/index.js +2 -18
- package/lib/server/requests-auth/index.js.map +1 -1
- package/lib/server/requests-auth/tokens.js +31 -51
- package/lib/server/requests-auth/tokens.js.map +1 -1
- package/lib/server/requests.js +25 -15
- package/lib/server/requests.js.map +1 -1
- package/lib/server/routes.js +24 -41
- package/lib/server/routes.js.map +1 -1
- package/lib/server/sockets.js +96 -111
- package/lib/server/sockets.js.map +1 -1
- package/lib/server/types.js +4 -9
- package/lib/server/types.js.map +1 -1
- package/lib/types/index.js +2 -18
- package/lib/types/index.js.map +1 -1
- package/lib/types/overrides.js +1 -2
- package/lib/utilities/authProviders.js +19 -28
- package/lib/utilities/authProviders.js.map +1 -1
- package/lib/utilities/hash.js +5 -43
- package/lib/utilities/hash.js.map +1 -1
- package/lib/utilities/index.js +6 -45
- package/lib/utilities/index.js.map +1 -1
- package/lib/utilities/json.js +3 -8
- package/lib/utilities/json.js.map +1 -1
- package/lib/utilities/media.js +3 -7
- package/lib/utilities/media.js.map +1 -1
- package/lib/utilities/random.js +5 -12
- package/lib/utilities/random.js.map +1 -1
- package/lib/utilities/retry.js +6 -11
- package/lib/utilities/retry.js.map +1 -1
- package/lib/validations/index.js +6 -47
- package/lib/validations/index.js.map +1 -1
- package/lib/validations/valleyed.js +18 -39
- package/lib/validations/valleyed.js.map +1 -1
- package/package.json +6 -5
package/lib/events/index.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./base"), exports);
|
|
18
|
-
__exportStar(require("./pipes"), exports);
|
|
19
|
-
__exportStar(require("./types/kafka"), exports);
|
|
20
|
-
__exportStar(require("./types/rabbitmq"), exports);
|
|
1
|
+
export * from './base';
|
|
2
|
+
export * from './pipes';
|
|
3
|
+
export * from './types/kafka';
|
|
4
|
+
export * from './types/rabbitmq';
|
|
21
5
|
//# sourceMappingURL=index.js.map
|
package/lib/events/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA"}
|
package/lib/events/pipes.js
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.kafkaConfigPipe = exports.rabbitmqConfigPipe = void 0;
|
|
4
|
-
const valleyed_1 = require("valleyed");
|
|
5
|
-
exports.rabbitmqConfigPipe = valleyed_1.v
|
|
1
|
+
import { v } from 'valleyed';
|
|
2
|
+
export const rabbitmqConfigPipe = v
|
|
6
3
|
.object({
|
|
7
|
-
uri:
|
|
8
|
-
eventColumnName:
|
|
4
|
+
uri: v.string(),
|
|
5
|
+
eventColumnName: v.string(),
|
|
9
6
|
})
|
|
10
7
|
.meta({ title: 'Rabbitmq Config', $refId: 'RabbitmqConfig' });
|
|
11
|
-
|
|
12
|
-
brokers:
|
|
13
|
-
ssl:
|
|
14
|
-
sasl:
|
|
15
|
-
mechanism:
|
|
16
|
-
username:
|
|
17
|
-
password:
|
|
8
|
+
export const kafkaConfigPipe = v.object({
|
|
9
|
+
brokers: v.array(v.string()),
|
|
10
|
+
ssl: v.optional(v.boolean()),
|
|
11
|
+
sasl: v.optional(v.object({
|
|
12
|
+
mechanism: v.is('plain'),
|
|
13
|
+
username: v.string(),
|
|
14
|
+
password: v.string(),
|
|
18
15
|
})),
|
|
19
|
-
confluent:
|
|
20
|
-
clientId:
|
|
16
|
+
confluent: v.optional(v.boolean()),
|
|
17
|
+
clientId: v.optional(v.string()),
|
|
21
18
|
});
|
|
22
19
|
//# sourceMappingURL=pipes.js.map
|
package/lib/events/pipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipes.js","sourceRoot":"","sources":["../../src/events/pipes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipes.js","sourceRoot":"","sources":["../../src/events/pipes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,CAAC,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KACjC,MAAM,CAAC;IACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3B,CAAC;KACD,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,QAAQ,CACf,CAAC,CAAC,MAAM,CAAC;QACR,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,OAAgB,CAAC;QACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CACF;IACD,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAA"}
|
|
@@ -1,46 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
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");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
var _KafkaEventBus_instances, _KafkaEventBus_client, _KafkaEventBus_confluent, _KafkaEventBus_admin, _KafkaEventBus_getAdmin, _KafkaEventBus_createTopic, _KafkaEventBus_deleteGroup;
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.KafkaEventBus = void 0;
|
|
19
|
-
const kafka_javascript_1 = __importDefault(require("@confluentinc/kafka-javascript"));
|
|
20
|
-
const kafkajs_1 = __importDefault(require("kafkajs"));
|
|
21
|
-
const instance_1 = require("../../instance");
|
|
22
|
-
const utilities_1 = require("../../utilities");
|
|
23
|
-
const base_1 = require("../base");
|
|
24
|
-
class KafkaEventBus extends base_1.EventBus {
|
|
1
|
+
import Confluent from '@confluentinc/kafka-javascript';
|
|
2
|
+
import Kafka from 'kafkajs';
|
|
3
|
+
import { Instance } from '../../instance';
|
|
4
|
+
import { Random, parseJSONValue } from '../../utilities';
|
|
5
|
+
import { DefaultSubscribeOptions, EventBus } from '../base';
|
|
6
|
+
export class KafkaEventBus extends EventBus {
|
|
7
|
+
#client;
|
|
8
|
+
#confluent;
|
|
9
|
+
#admin;
|
|
25
10
|
constructor(config) {
|
|
26
11
|
super();
|
|
27
|
-
_KafkaEventBus_instances.add(this);
|
|
28
|
-
_KafkaEventBus_client.set(this, void 0);
|
|
29
|
-
_KafkaEventBus_confluent.set(this, void 0);
|
|
30
|
-
_KafkaEventBus_admin.set(this, void 0);
|
|
31
12
|
const { confluent = false, ...kafkaSettings } = config;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
? new
|
|
35
|
-
kafkaJS: { ...kafkaSettings, logLevel:
|
|
13
|
+
this.#confluent = confluent;
|
|
14
|
+
this.#client = confluent
|
|
15
|
+
? new Confluent.KafkaJS.Kafka({
|
|
16
|
+
kafkaJS: { ...kafkaSettings, logLevel: Confluent.KafkaJS.logLevel.NOTHING },
|
|
36
17
|
})
|
|
37
|
-
: new
|
|
18
|
+
: new Kafka.Kafka({ ...kafkaSettings, logLevel: Kafka.logLevel.NOTHING });
|
|
38
19
|
}
|
|
39
20
|
createPublisher(topicName, options = {}) {
|
|
40
|
-
const topic = options.skipScope ? topicName :
|
|
21
|
+
const topic = options.skipScope ? topicName : Instance.get().getScopedName(topicName);
|
|
41
22
|
return async (data) => {
|
|
42
23
|
try {
|
|
43
|
-
const producer =
|
|
24
|
+
const producer = this.#client.producer();
|
|
44
25
|
await producer.connect();
|
|
45
26
|
await producer.send({
|
|
46
27
|
topic,
|
|
@@ -54,46 +35,47 @@ class KafkaEventBus extends base_1.EventBus {
|
|
|
54
35
|
};
|
|
55
36
|
}
|
|
56
37
|
createSubscriber(topicName, onMessage, options = {}) {
|
|
57
|
-
options = { ...
|
|
58
|
-
const topic = options.skipScope ? topicName :
|
|
38
|
+
options = { ...DefaultSubscribeOptions, ...options };
|
|
39
|
+
const topic = options.skipScope ? topicName : Instance.get().getScopedName(topicName);
|
|
59
40
|
const subscribe = async () => {
|
|
60
|
-
await
|
|
41
|
+
await this.#createTopic(topic);
|
|
61
42
|
const groupId = options.fanout
|
|
62
|
-
?
|
|
43
|
+
? Instance.get().getScopedName(`${Instance.get().settings.app.id}-fanout-${Random.string(10)}`)
|
|
63
44
|
: topic;
|
|
64
|
-
const consumer =
|
|
45
|
+
const consumer = this.#client.consumer(this.#confluent ? { kafkaJS: { groupId } } : { groupId });
|
|
65
46
|
await consumer.connect();
|
|
66
47
|
await consumer.subscribe({ topic });
|
|
67
48
|
await consumer.run({
|
|
68
49
|
eachMessage: async ({ message }) => {
|
|
69
|
-
|
|
50
|
+
Instance.resolveBeforeCrash(async () => {
|
|
70
51
|
if (!message.value)
|
|
71
52
|
return;
|
|
72
|
-
await onMessage(
|
|
53
|
+
await onMessage(parseJSONValue(message.value.toString()));
|
|
73
54
|
});
|
|
74
55
|
},
|
|
75
56
|
});
|
|
76
57
|
if (options.fanout)
|
|
77
|
-
|
|
58
|
+
Instance.on('close', async () => {
|
|
78
59
|
await consumer.disconnect();
|
|
79
|
-
await
|
|
60
|
+
await this.#deleteGroup(groupId);
|
|
80
61
|
}, 10);
|
|
81
62
|
};
|
|
82
|
-
|
|
63
|
+
Instance.on('start', subscribe, 2);
|
|
83
64
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
65
|
+
async #getAdmin() {
|
|
66
|
+
if (!this.#admin) {
|
|
67
|
+
this.#admin = this.#client.admin();
|
|
68
|
+
await this.#admin.connect();
|
|
69
|
+
}
|
|
70
|
+
return this.#admin;
|
|
71
|
+
}
|
|
72
|
+
async #createTopic(topic) {
|
|
73
|
+
const admin = await this.#getAdmin();
|
|
74
|
+
await admin.createTopics({ topics: [{ topic }], timeout: 5000 });
|
|
90
75
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
const admin = await __classPrivateFieldGet(this, _KafkaEventBus_instances, "m", _KafkaEventBus_getAdmin).call(this);
|
|
97
|
-
await admin.deleteGroups([groupId]).catch(() => { });
|
|
98
|
-
};
|
|
76
|
+
async #deleteGroup(groupId) {
|
|
77
|
+
const admin = await this.#getAdmin();
|
|
78
|
+
await admin.deleteGroups([groupId]).catch(() => { });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
99
81
|
//# sourceMappingURL=kafka.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.js","sourceRoot":"","sources":["../../../src/events/types/kafka.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kafka.js","sourceRoot":"","sources":["../../../src/events/types/kafka.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
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");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _RabbitMQEventBus_client, _RabbitMQEventBus_columnName;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.RabbitMQEventBus = void 0;
|
|
16
|
-
const amqp_connection_manager_1 = require("amqp-connection-manager");
|
|
17
|
-
const instance_1 = require("../../instance");
|
|
18
|
-
const utilities_1 = require("../../utilities");
|
|
19
|
-
const base_1 = require("../base");
|
|
20
|
-
class RabbitMQEventBus extends base_1.EventBus {
|
|
1
|
+
import { connect } from 'amqp-connection-manager';
|
|
2
|
+
import { Instance } from '../../instance';
|
|
3
|
+
import { Random, parseJSONValue } from '../../utilities';
|
|
4
|
+
import { DefaultSubscribeOptions, EventBus } from '../base';
|
|
5
|
+
export class RabbitMQEventBus extends EventBus {
|
|
6
|
+
#client;
|
|
7
|
+
#columnName;
|
|
21
8
|
constructor(config) {
|
|
22
9
|
super();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
__classPrivateFieldSet(this, _RabbitMQEventBus_columnName, config.eventColumnName, "f");
|
|
26
|
-
__classPrivateFieldSet(this, _RabbitMQEventBus_client, (0, amqp_connection_manager_1.connect)([config.uri]).createChannel({
|
|
10
|
+
this.#columnName = config.eventColumnName;
|
|
11
|
+
this.#client = connect([config.uri]).createChannel({
|
|
27
12
|
json: false,
|
|
28
13
|
setup: async (channel) => {
|
|
29
|
-
await channel.assertExchange(
|
|
14
|
+
await channel.assertExchange(this.#columnName, 'direct', { durable: true });
|
|
30
15
|
await channel.prefetch(1);
|
|
31
16
|
},
|
|
32
|
-
})
|
|
17
|
+
});
|
|
33
18
|
}
|
|
34
19
|
createPublisher(topicName, options = {}) {
|
|
35
|
-
const topic = options.skipScope ? topicName :
|
|
36
|
-
return async (data) => await
|
|
20
|
+
const topic = options.skipScope ? topicName : Instance.get().getScopedName(topicName);
|
|
21
|
+
return async (data) => await this.#client.publish(this.#columnName, topic, JSON.stringify(data), { persistent: true });
|
|
37
22
|
}
|
|
38
23
|
createSubscriber(topicName, onMessage, options = {}) {
|
|
39
|
-
options = { ...
|
|
40
|
-
const topic = options.skipScope ? topicName :
|
|
24
|
+
options = { ...DefaultSubscribeOptions, ...options };
|
|
25
|
+
const topic = options.skipScope ? topicName : Instance.get().getScopedName(topicName);
|
|
41
26
|
const subscribe = async () => {
|
|
42
|
-
await
|
|
27
|
+
await this.#client.addSetup(async (channel) => {
|
|
43
28
|
const queueName = options.fanout
|
|
44
|
-
?
|
|
29
|
+
? Instance.get().getScopedName(`${Instance.get().settings.app.id}-fanout-${Random.string(10)}`)
|
|
45
30
|
: topic;
|
|
46
31
|
const { queue } = await channel.assertQueue(queueName, { durable: !options.fanout, exclusive: options.fanout });
|
|
47
|
-
await channel.bindQueue(queue,
|
|
32
|
+
await channel.bindQueue(queue, this.#columnName, topic);
|
|
48
33
|
channel.consume(queue, async (msg) => {
|
|
49
|
-
|
|
34
|
+
Instance.resolveBeforeCrash(async () => {
|
|
50
35
|
if (!msg)
|
|
51
36
|
return;
|
|
52
37
|
try {
|
|
53
|
-
await onMessage(
|
|
38
|
+
await onMessage(parseJSONValue(msg.content.toString()));
|
|
54
39
|
channel.ack(msg);
|
|
55
40
|
}
|
|
56
41
|
catch {
|
|
@@ -60,9 +45,7 @@ class RabbitMQEventBus extends base_1.EventBus {
|
|
|
60
45
|
}, { noAck: false });
|
|
61
46
|
});
|
|
62
47
|
};
|
|
63
|
-
|
|
48
|
+
Instance.on('start', subscribe, 2);
|
|
64
49
|
}
|
|
65
50
|
}
|
|
66
|
-
exports.RabbitMQEventBus = RabbitMQEventBus;
|
|
67
|
-
_RabbitMQEventBus_client = new WeakMap(), _RabbitMQEventBus_columnName = new WeakMap();
|
|
68
51
|
//# sourceMappingURL=rabbitmq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq.js","sourceRoot":"","sources":["../../../src/events/types/rabbitmq.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rabbitmq.js","sourceRoot":"","sources":["../../../src/events/types/rabbitmq.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./instance"), exports);
|
|
1
|
+
export * from './instance';
|
|
18
2
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|
package/lib/instance/hooks.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runHooks = runHooks;
|
|
4
|
-
async function runHooks(hooks, onError = (error) => {
|
|
1
|
+
export async function runHooks(hooks, onError = (error) => {
|
|
5
2
|
throw error;
|
|
6
3
|
}) {
|
|
7
4
|
const grouped = hooks.reduce((acc, cur) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/instance/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/instance/hooks.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,KAAmB,EACnB,UAAkC,CAAC,KAAK,EAAE,EAAE;IAC3C,MAAM,KAAK,CAAA;AACZ,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvE,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAC5B,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,GAAG,CAAA;IACX,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;SACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM;QACzB,MAAM,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACrB,IAAI,CAAC;gBACJ,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,UAAU;oBAAE,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,CAAA;gBACnD,OAAO,MAAM,CAAC,CAAC,EAAE,CAAA;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;YACvE,CAAC;QACF,CAAC,CAAC,CACF,CAAA;AACH,CAAC"}
|
package/lib/instance/index.js
CHANGED
|
@@ -1,71 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
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");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _a, _Instance_instance, _Instance_hooks, _Instance_registerOnExitHandler;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.Instance = void 0;
|
|
16
|
-
const valleyed_1 = require("valleyed");
|
|
17
|
-
const hooks_1 = require("./hooks");
|
|
18
|
-
const settings_1 = require("./settings");
|
|
19
|
-
const errors_1 = require("../errors");
|
|
20
|
-
class Instance extends valleyed_1.DataClass {
|
|
1
|
+
import { DataClass } from 'valleyed';
|
|
2
|
+
import { runHooks } from './hooks';
|
|
3
|
+
import { instanceSettingsPipe, mapSettingsToInstance } from './settings';
|
|
4
|
+
import { EquippedError } from '../errors';
|
|
5
|
+
export class Instance extends DataClass {
|
|
6
|
+
static #instance;
|
|
7
|
+
static #hooks = {};
|
|
8
|
+
envs;
|
|
9
|
+
settings;
|
|
21
10
|
constructor(envs, settings) {
|
|
22
|
-
super(
|
|
23
|
-
|
|
11
|
+
super(mapSettingsToInstance(settings));
|
|
12
|
+
Instance.#instance = this;
|
|
24
13
|
this.envs = Object.freeze(envs);
|
|
25
14
|
this.settings = Object.freeze(settings);
|
|
26
|
-
|
|
15
|
+
Instance.#registerOnExitHandler();
|
|
27
16
|
}
|
|
28
17
|
getScopedName(name, key = '.') {
|
|
29
18
|
return [this.settings.app.name, name].join(key);
|
|
30
19
|
}
|
|
31
20
|
async start() {
|
|
32
21
|
try {
|
|
33
|
-
await
|
|
34
|
-
await
|
|
22
|
+
await runHooks(Instance.#hooks['setup'] ?? []);
|
|
23
|
+
await runHooks(Instance.#hooks['start'] ?? []);
|
|
35
24
|
}
|
|
36
25
|
catch (error) {
|
|
37
|
-
|
|
26
|
+
Instance.crash(new EquippedError(`Error starting instance`, {}, error));
|
|
38
27
|
}
|
|
39
28
|
}
|
|
40
29
|
static create(envsPipe, settings) {
|
|
41
|
-
if (
|
|
42
|
-
throw
|
|
30
|
+
if (Instance.#instance)
|
|
31
|
+
throw Instance.crash(new EquippedError('An instance has already been created. Use that instead', {}));
|
|
43
32
|
const envValidity = envsPipe.validate(process.env);
|
|
44
33
|
if (!envValidity.valid) {
|
|
45
|
-
|
|
34
|
+
Instance.crash(new EquippedError(`Environment variables are not valid\n${envValidity.error.toString()}`, {
|
|
46
35
|
messages: envValidity.error.messages,
|
|
47
36
|
}));
|
|
48
37
|
}
|
|
49
|
-
const settingsValidity =
|
|
38
|
+
const settingsValidity = instanceSettingsPipe().validate(settings(envValidity.value));
|
|
50
39
|
if (!settingsValidity.valid) {
|
|
51
|
-
|
|
40
|
+
Instance.crash(new EquippedError(`Settings are not valid\n${settingsValidity.error.toString()}`, {
|
|
52
41
|
messages: settingsValidity.error.messages,
|
|
53
42
|
}));
|
|
54
43
|
}
|
|
55
|
-
return new
|
|
44
|
+
return new Instance(envValidity.value, settingsValidity.value);
|
|
56
45
|
}
|
|
57
46
|
static get() {
|
|
58
|
-
if (!
|
|
59
|
-
return
|
|
60
|
-
return
|
|
47
|
+
if (!Instance.#instance)
|
|
48
|
+
return Instance.crash(new EquippedError('Has not been initialized. Make sure an instance has been created before you get an instance', {}));
|
|
49
|
+
return Instance.#instance;
|
|
61
50
|
}
|
|
62
51
|
static on(event, cb, order) {
|
|
63
|
-
|
|
64
|
-
|
|
52
|
+
Instance.#hooks[event] ??= [];
|
|
53
|
+
Instance.#hooks[event].push({ cb, order });
|
|
54
|
+
}
|
|
55
|
+
static #registerOnExitHandler() {
|
|
56
|
+
const signals = {
|
|
57
|
+
SIGHUP: 1,
|
|
58
|
+
SIGINT: 2,
|
|
59
|
+
SIGTERM: 15,
|
|
60
|
+
};
|
|
61
|
+
Object.entries(signals).forEach(([signal, code]) => {
|
|
62
|
+
process.on(signal, async () => {
|
|
63
|
+
await runHooks(Instance.#hooks['close'] ?? [], () => { });
|
|
64
|
+
process.exit(128 + code);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
65
67
|
}
|
|
66
68
|
static resolveBeforeCrash(cb) {
|
|
67
69
|
const value = cb();
|
|
68
|
-
|
|
70
|
+
Instance.on('close', async () => await value, 10);
|
|
69
71
|
return value;
|
|
70
72
|
}
|
|
71
73
|
static crash(error) {
|
|
@@ -73,20 +75,4 @@ class Instance extends valleyed_1.DataClass {
|
|
|
73
75
|
process.exit(1);
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
|
-
exports.Instance = Instance;
|
|
77
|
-
_a = Instance, _Instance_registerOnExitHandler = function _Instance_registerOnExitHandler() {
|
|
78
|
-
const signals = {
|
|
79
|
-
SIGHUP: 1,
|
|
80
|
-
SIGINT: 2,
|
|
81
|
-
SIGTERM: 15,
|
|
82
|
-
};
|
|
83
|
-
Object.entries(signals).forEach(([signal, code]) => {
|
|
84
|
-
process.on(signal, async () => {
|
|
85
|
-
await (0, hooks_1.runHooks)(__classPrivateFieldGet(_a, _a, "f", _Instance_hooks)['close'] ?? [], () => { });
|
|
86
|
-
process.exit(128 + code);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
|
-
_Instance_instance = { value: void 0 };
|
|
91
|
-
_Instance_hooks = { value: {} };
|
|
92
78
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instance/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instance/index.ts"],"names":[],"mappings":"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"}
|