@ido_kawaz/amqp-client 4.0.0 → 4.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.
- package/README.md +3 -3
- package/dist/__tests__/config.test.js +15 -10
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/amqpClient.d.ts.map +1 -1
- package/dist/amqpClient.js +3 -0
- package/dist/amqpClient.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
AmqpClient,
|
|
18
18
|
Consumer,
|
|
19
19
|
createConsumerBinding,
|
|
20
|
-
type AmqpConfig
|
|
20
|
+
type AmqpConfig,
|
|
21
21
|
createAmqpConfig,
|
|
22
22
|
AmqpRetriableError,
|
|
23
23
|
} from '@ido_kawaz/amqp-client';
|
|
@@ -77,9 +77,9 @@ bootstrap().catch(console.error);
|
|
|
77
77
|
|
|
78
78
|
- `amqpConnectionString`: Full RabbitMQ connection URL (for example `amqp://guest:guest@localhost:5672`)
|
|
79
79
|
|
|
80
|
-
`createAmqpConfig(
|
|
80
|
+
`createAmqpConfig(): AmqpConfig`
|
|
81
81
|
|
|
82
|
-
- Validates `AMQP_CONNECTION_STRING` from env using Joi
|
|
82
|
+
- Validates `AMQP_CONNECTION_STRING` from `process.env` using Joi
|
|
83
83
|
- Requires URI scheme `amqp` or `amqps`
|
|
84
84
|
- Throws Joi validation error for invalid or missing env value
|
|
85
85
|
|
|
@@ -6,29 +6,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const joi_1 = __importDefault(require("joi"));
|
|
7
7
|
const config_1 = require("../config");
|
|
8
8
|
describe('createAmqpConfig', () => {
|
|
9
|
+
const originalEnv = process.env;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
process.env = { ...originalEnv };
|
|
12
|
+
});
|
|
13
|
+
afterAll(() => {
|
|
14
|
+
process.env = originalEnv;
|
|
15
|
+
});
|
|
9
16
|
it('returns config when AMQP_CONNECTION_STRING is valid', () => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
});
|
|
17
|
+
process.env.AMQP_CONNECTION_STRING = 'amqp://guest:guest@localhost:5672';
|
|
18
|
+
const config = (0, config_1.createAmqpConfig)();
|
|
13
19
|
expect(config).toEqual({
|
|
14
20
|
amqpConnectionString: 'amqp://guest:guest@localhost:5672',
|
|
15
21
|
});
|
|
16
22
|
});
|
|
17
23
|
it('accepts amqps scheme', () => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
});
|
|
24
|
+
process.env.AMQP_CONNECTION_STRING = 'amqps://rabbitmq.example.com:5671';
|
|
25
|
+
const config = (0, config_1.createAmqpConfig)();
|
|
21
26
|
expect(config).toEqual({
|
|
22
27
|
amqpConnectionString: 'amqps://rabbitmq.example.com:5671',
|
|
23
28
|
});
|
|
24
29
|
});
|
|
25
30
|
it('throws validation error when AMQP_CONNECTION_STRING is missing', () => {
|
|
26
|
-
|
|
31
|
+
delete process.env.AMQP_CONNECTION_STRING;
|
|
32
|
+
expect(() => (0, config_1.createAmqpConfig)()).toThrow(joi_1.default.ValidationError);
|
|
27
33
|
});
|
|
28
34
|
it('throws validation error when scheme is invalid', () => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
})).toThrow(joi_1.default.ValidationError);
|
|
35
|
+
process.env.AMQP_CONNECTION_STRING = 'http://localhost:5672';
|
|
36
|
+
expect(() => (0, config_1.createAmqpConfig)()).toThrow(joi_1.default.ValidationError);
|
|
32
37
|
});
|
|
33
38
|
});
|
|
34
39
|
//# sourceMappingURL=config.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsB;AACtB,sCAA6C;AAE7C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsB;AACtB,sCAA6C;AAE7C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,mCAAmC,CAAC;QAEzE,MAAM,MAAM,GAAG,IAAA,yBAAgB,GAAE,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,oBAAoB,EAAE,mCAAmC;SAC5D,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,mCAAmC,CAAC;QAEzE,MAAM,MAAM,GAAG,IAAA,yBAAgB,GAAE,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,oBAAoB,EAAE,mCAAmC;SAC5D,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;QAE1C,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,OAAO,CAAC,aAAG,CAAC,eAAe,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,uBAAuB,CAAC;QAE7D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,OAAO,CAAC,aAAG,CAAC,eAAe,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/dist/amqpClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amqpClient.d.ts","sourceRoot":"","sources":["../src/amqpClient.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,UAAU;IAGP,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAc,OAAO,CAAC,QAAQ,CAAC,SAAS;IAF3E,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;gBACA,MAAM,EAAE,UAAU,EAAmB,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IAG3F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"amqpClient.d.ts","sourceRoot":"","sources":["../src/amqpClient.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,UAAU;IAGP,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAc,OAAO,CAAC,QAAQ,CAAC,SAAS;IAF3E,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;gBACA,MAAM,EAAE,UAAU,EAAmB,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IAG3F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAYvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ9B"}
|
package/dist/amqpClient.js
CHANGED
|
@@ -14,12 +14,15 @@ class AmqpClient {
|
|
|
14
14
|
}
|
|
15
15
|
async start() {
|
|
16
16
|
try {
|
|
17
|
+
const startTime = Date.now();
|
|
17
18
|
const connection = await amqplib_1.default.connect(this.config.amqpConnectionString);
|
|
18
19
|
this.connection = connection;
|
|
19
20
|
this.channel = await connection.createChannel().then(async (channel) => {
|
|
20
21
|
await Promise.all(this.consumers.map((consumer) => consumer.start(channel)));
|
|
21
22
|
return channel;
|
|
22
23
|
});
|
|
24
|
+
const endTime = Date.now();
|
|
25
|
+
console.log(`amqp client started successfully in ${endTime - startTime} ms`);
|
|
23
26
|
}
|
|
24
27
|
catch (error) {
|
|
25
28
|
throw new errors_1.AmqpConnectionError(error.message, { amqpConnectionString: this.config.amqpConnectionString });
|
package/dist/amqpClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amqpClient.js","sourceRoot":"","sources":["../src/amqpClient.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAsD;AAEtD,qCAA2F;AAC3F,iCAAwC;AAIxC,MAAa,UAAU;IAGnB,YAA6B,MAAkB,EAAmB,SAA+B;QAApE,WAAM,GAAN,MAAM,CAAY;QAAmB,cAAS,GAAT,SAAS,CAAsB;IACjG,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,iBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACnE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7E,OAAO,OAAO,CAAC;YACnB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"amqpClient.js","sourceRoot":"","sources":["../src/amqpClient.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAsD;AAEtD,qCAA2F;AAC3F,iCAAwC;AAIxC,MAAa,UAAU;IAGnB,YAA6B,MAAkB,EAAmB,SAA+B;QAApE,WAAM,GAAN,MAAM,CAAY;QAAmB,cAAS,GAAT,SAAS,CAAsB;IACjG,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAM,iBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACnE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7E,OAAO,OAAO,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,GAAG,SAAS,KAAK,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,4BAAmB,CAAE,KAAe,CAAC,OAAO,EAAE,EAAE,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACxH,CAAC;IACL,CAAC;IAED,OAAO,CAAI,GAAG,IAAwB;QAClC,IAAI,IAAA,aAAK,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,+BAAsB,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,2BAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,IAAA,gBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,IAAA,gBAAQ,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC;IACL,CAAC;CACJ;AA1CD,gCA0CC"}
|
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAChC;AAUD,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAChC;AAUD,eAAO,MAAM,gBAAgB,QAAO,UASnC,CAAA"}
|
package/dist/config.js
CHANGED
|
@@ -8,8 +8,8 @@ const joi_1 = __importDefault(require("joi"));
|
|
|
8
8
|
const amqpEnvSchema = joi_1.default.object({
|
|
9
9
|
AMQP_CONNECTION_STRING: joi_1.default.string().uri({ scheme: ['amqp', 'amqps'] }).required(),
|
|
10
10
|
}).unknown();
|
|
11
|
-
const createAmqpConfig = (
|
|
12
|
-
const { error, value } = amqpEnvSchema.validate(env, { abortEarly: false });
|
|
11
|
+
const createAmqpConfig = () => {
|
|
12
|
+
const { error, value } = amqpEnvSchema.validate(process.env, { abortEarly: false });
|
|
13
13
|
if (error) {
|
|
14
14
|
throw error;
|
|
15
15
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAUtB,MAAM,aAAa,GAAG,aAAG,CAAC,MAAM,CAAU;IACtC,sBAAsB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrF,CAAC,CAAC,OAAO,EAAE,CAAC;AAEN,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAUtB,MAAM,aAAa,GAAG,aAAG,CAAC,MAAM,CAAU;IACtC,sBAAsB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrF,CAAC,CAAC,OAAO,EAAE,CAAC;AAEN,MAAM,gBAAgB,GAAG,GAAe,EAAE;IAC7C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,KAAK,CAAC;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,KAAgB,CAAC;IACjC,OAAO;QACH,oBAAoB,EAAE,OAAO,CAAC,sBAAsB;KACvD,CAAC;AACN,CAAC,CAAA;AATY,QAAA,gBAAgB,oBAS5B"}
|