@message-queue-toolkit/core 1.0.0 → 1.2.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/dist/index.d.ts +2 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/errors/Errors.d.ts +13 -0
- package/dist/lib/errors/Errors.js +31 -0
- package/dist/lib/errors/Errors.js.map +1 -0
- package/dist/lib/queues/AbstractQueueService.d.ts +14 -7
- package/dist/lib/queues/AbstractQueueService.js +3 -1
- package/dist/lib/queues/AbstractQueueService.js.map +1 -1
- package/package.json +8 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { QueueConsumer, AsyncPublisher, SyncPublisher, TransactionObservabilityManager, Logger, } from './lib/types/MessageQueueTypes';
|
|
2
2
|
export { AbstractQueueService } from './lib/queues/AbstractQueueService';
|
|
3
|
-
export type { QueueOptions, QueueDependencies, QueueConsumerDependencies, } from './lib/queues/AbstractQueueService';
|
|
3
|
+
export type { QueueOptions, QueueDependencies, QueueConsumerDependencies, Deserializer, CommonQueueLocator, } from './lib/queues/AbstractQueueService';
|
|
4
|
+
export { isMessageError, MessageValidationError, MessageInvalidFormatError, } from './lib/errors/Errors';
|
|
4
5
|
export { objectToBuffer } from './lib/utils/queueUtils';
|
|
5
6
|
export { waitAndRetry } from './lib/utils/waitUtils';
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.waitAndRetry = exports.objectToBuffer = exports.AbstractQueueService = void 0;
|
|
3
|
+
exports.waitAndRetry = exports.objectToBuffer = exports.MessageInvalidFormatError = exports.MessageValidationError = exports.isMessageError = exports.AbstractQueueService = void 0;
|
|
4
4
|
var AbstractQueueService_1 = require("./lib/queues/AbstractQueueService");
|
|
5
5
|
Object.defineProperty(exports, "AbstractQueueService", { enumerable: true, get: function () { return AbstractQueueService_1.AbstractQueueService; } });
|
|
6
|
+
var Errors_1 = require("./lib/errors/Errors");
|
|
7
|
+
Object.defineProperty(exports, "isMessageError", { enumerable: true, get: function () { return Errors_1.isMessageError; } });
|
|
8
|
+
Object.defineProperty(exports, "MessageValidationError", { enumerable: true, get: function () { return Errors_1.MessageValidationError; } });
|
|
9
|
+
Object.defineProperty(exports, "MessageInvalidFormatError", { enumerable: true, get: function () { return Errors_1.MessageInvalidFormatError; } });
|
|
6
10
|
var queueUtils_1 = require("./lib/utils/queueUtils");
|
|
7
11
|
Object.defineProperty(exports, "objectToBuffer", { enumerable: true, get: function () { return queueUtils_1.objectToBuffer; } });
|
|
8
12
|
var waitUtils_1 = require("./lib/utils/waitUtils");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAQA,0EAAwE;AAA/D,4HAAA,oBAAoB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAQA,0EAAwE;AAA/D,4HAAA,oBAAoB,OAAA;AAS7B,8CAI4B;AAH1B,wGAAA,cAAc,OAAA;AACd,gHAAA,sBAAsB,OAAA;AACtB,mHAAA,yBAAyB,OAAA;AAG3B,qDAAuD;AAA9C,4GAAA,cAAc,OAAA;AACvB,mDAAoD;AAA3C,yGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { InternalError } from '@lokalise/node-core';
|
|
2
|
+
export type FreeformRecord = Record<string, any>;
|
|
3
|
+
export type CommonErrorParams = {
|
|
4
|
+
message: string;
|
|
5
|
+
details?: FreeformRecord;
|
|
6
|
+
};
|
|
7
|
+
export declare class MessageInvalidFormatError extends InternalError {
|
|
8
|
+
constructor(params: CommonErrorParams);
|
|
9
|
+
}
|
|
10
|
+
export declare class MessageValidationError extends InternalError {
|
|
11
|
+
constructor(params: CommonErrorParams);
|
|
12
|
+
}
|
|
13
|
+
export declare function isMessageError(err: Error | undefined): err is MessageValidationError | MessageInvalidFormatError;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isMessageError = exports.MessageValidationError = exports.MessageInvalidFormatError = void 0;
|
|
4
|
+
const node_core_1 = require("@lokalise/node-core");
|
|
5
|
+
class MessageInvalidFormatError extends node_core_1.InternalError {
|
|
6
|
+
constructor(params) {
|
|
7
|
+
super({
|
|
8
|
+
message: params.message,
|
|
9
|
+
errorCode: 'MESSAGE_INVALID_FORMAT',
|
|
10
|
+
details: params.details,
|
|
11
|
+
});
|
|
12
|
+
this.name = 'MessageInvalidFormat';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.MessageInvalidFormatError = MessageInvalidFormatError;
|
|
16
|
+
class MessageValidationError extends node_core_1.InternalError {
|
|
17
|
+
constructor(params) {
|
|
18
|
+
super({
|
|
19
|
+
message: params.message,
|
|
20
|
+
errorCode: 'MESSAGE_VALIDATION_ERROR',
|
|
21
|
+
details: params.details,
|
|
22
|
+
});
|
|
23
|
+
this.name = 'MessageValidationError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.MessageValidationError = MessageValidationError;
|
|
27
|
+
function isMessageError(err) {
|
|
28
|
+
return ((err && (err.name === 'MessageValidationError' || err.name === 'MessageInvalidFormat')) ?? false);
|
|
29
|
+
}
|
|
30
|
+
exports.isMessageError = isMessageError;
|
|
31
|
+
//# sourceMappingURL=Errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../../lib/errors/Errors.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AAUnD,MAAa,yBAA0B,SAAQ,yBAAa;IAC1D,YAAY,MAAyB;QACnC,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,wBAAwB;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AATD,8DASC;AAED,MAAa,sBAAuB,SAAQ,yBAAa;IACvD,YAAY,MAAyB;QACnC,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAA;IACtC,CAAC;CACF;AATD,wDASC;AAED,SAAgB,cAAc,CAC5B,GAAsB;IAEtB,OAAO,CACL,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,wBAAwB,IAAI,GAAG,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,IAAI,KAAK,CACjG,CAAA;AACH,CAAC;AAND,wCAMC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { ErrorReporter, ErrorResolver } from '@lokalise/node-core';
|
|
2
|
-
import type { ZodSchema } from 'zod';
|
|
1
|
+
import type { ErrorReporter, ErrorResolver, Either } from '@lokalise/node-core';
|
|
2
|
+
import type { ZodSchema, ZodType } from 'zod';
|
|
3
|
+
import type { MessageInvalidFormatError, MessageValidationError } from '../errors/Errors';
|
|
3
4
|
import type { Logger, TransactionObservabilityManager } from '../types/MessageQueueTypes';
|
|
4
5
|
export type QueueDependencies = {
|
|
5
6
|
errorReporter: ErrorReporter;
|
|
@@ -9,20 +10,26 @@ export type QueueConsumerDependencies = {
|
|
|
9
10
|
consumerErrorResolver: ErrorResolver;
|
|
10
11
|
transactionObservabilityManager: TransactionObservabilityManager;
|
|
11
12
|
};
|
|
12
|
-
export type
|
|
13
|
+
export type Deserializer<MessagePayloadType extends object, QueueEngineMessageType extends object> = (message: QueueEngineMessageType, type: ZodType<MessagePayloadType>, errorProcessor: ErrorResolver) => Either<MessageInvalidFormatError | MessageValidationError, MessagePayloadType>;
|
|
14
|
+
export type QueueOptions<MessagePayloadType extends object, QueueConfiguration extends object, QueueLocatorType extends object> = {
|
|
13
15
|
messageSchema: ZodSchema<MessagePayloadType>;
|
|
14
16
|
messageTypeField: string;
|
|
15
17
|
queueName: string;
|
|
16
|
-
|
|
18
|
+
queueLocator?: QueueLocatorType;
|
|
19
|
+
queueConfiguration?: QueueConfiguration;
|
|
17
20
|
};
|
|
18
|
-
export
|
|
21
|
+
export type CommonQueueLocator = {
|
|
22
|
+
queueName: string;
|
|
23
|
+
};
|
|
24
|
+
export declare abstract class AbstractQueueService<MessagePayloadType extends object, DependenciesType extends QueueDependencies, QueueConfiguration extends object, QueueLocatorType extends object = CommonQueueLocator, OptionsType extends QueueOptions<MessagePayloadType, QueueConfiguration, QueueLocatorType> = QueueOptions<MessagePayloadType, QueueConfiguration, QueueLocatorType>> {
|
|
19
25
|
protected readonly queueName: string;
|
|
20
26
|
protected readonly errorReporter: ErrorReporter;
|
|
21
27
|
protected readonly messageSchema: ZodSchema<MessagePayloadType>;
|
|
22
28
|
protected readonly logger: Logger;
|
|
23
29
|
protected readonly messageTypeField: string;
|
|
24
|
-
protected readonly queueConfiguration
|
|
25
|
-
|
|
30
|
+
protected readonly queueConfiguration?: QueueConfiguration;
|
|
31
|
+
protected readonly queueLocator?: QueueLocatorType;
|
|
32
|
+
constructor({ errorReporter, logger }: DependenciesType, { messageSchema, messageTypeField, queueName, queueConfiguration, queueLocator }: OptionsType);
|
|
26
33
|
protected handleError(err: unknown): void;
|
|
27
34
|
abstract close(): Promise<unknown>;
|
|
28
35
|
}
|
|
@@ -10,13 +10,15 @@ class AbstractQueueService {
|
|
|
10
10
|
logger;
|
|
11
11
|
messageTypeField;
|
|
12
12
|
queueConfiguration;
|
|
13
|
-
|
|
13
|
+
queueLocator;
|
|
14
|
+
constructor({ errorReporter, logger }, { messageSchema, messageTypeField, queueName, queueConfiguration, queueLocator }) {
|
|
14
15
|
this.errorReporter = errorReporter;
|
|
15
16
|
this.logger = logger;
|
|
16
17
|
this.queueName = queueName;
|
|
17
18
|
this.messageSchema = messageSchema;
|
|
18
19
|
this.messageTypeField = messageTypeField;
|
|
19
20
|
this.queueConfiguration = queueConfiguration;
|
|
21
|
+
this.queueLocator = queueLocator;
|
|
20
22
|
}
|
|
21
23
|
handleError(err) {
|
|
22
24
|
const logObject = (0, node_core_1.resolveGlobalErrorLogObject)(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractQueueService.js","sourceRoot":"","sources":["../../../lib/queues/AbstractQueueService.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAGjC,mDAAiE;
|
|
1
|
+
{"version":3,"file":"AbstractQueueService.js","sourceRoot":"","sources":["../../../lib/queues/AbstractQueueService.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAGjC,mDAAiE;AAyCjE,MAAsB,oBAAoB;IAWrB,SAAS,CAAQ;IACjB,aAAa,CAAe;IAC5B,aAAa,CAA+B;IAC5C,MAAM,CAAQ;IACd,gBAAgB,CAAQ;IACxB,kBAAkB,CAAqB;IACvC,YAAY,CAAmB;IAElD,YACE,EAAE,aAAa,EAAE,MAAM,EAAoB,EAC3C,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAe;QAE7F,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAES,WAAW,CAAC,GAAY;QAChC,MAAM,SAAS,GAAG,IAAA,uCAA2B,EAAC,GAAG,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,iBAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;SAC1C;IACH,CAAC;CAGF;AA1CD,oDA0CC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently",
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
"main": "dist/index.js",
|
|
14
14
|
"types": "dist/index.d.ts",
|
|
15
15
|
"scripts": {
|
|
16
|
-
"build": "tsc",
|
|
16
|
+
"build": "del-cli dist && del-cli coverage && tsc",
|
|
17
17
|
"build:release": "del-cli dist && del-cli coverage && npm run lint && tsc --project tsconfig.release.json",
|
|
18
18
|
"lint": "eslint . --ext .ts",
|
|
19
19
|
"lint:fix": "eslint . --ext .ts --fix",
|
|
20
20
|
"test:coverage": "",
|
|
21
|
+
"test:ci": "npm run docker:start:dev && npm run test:coverage && npm run docker:stop:dev",
|
|
21
22
|
"docker:start:dev": "",
|
|
22
23
|
"docker:stop:dev": "",
|
|
23
24
|
"format": "prettier --write .",
|
|
@@ -25,16 +26,16 @@
|
|
|
25
26
|
},
|
|
26
27
|
"dependencies": {},
|
|
27
28
|
"devDependencies": {
|
|
28
|
-
"@types/node": "^20.
|
|
29
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
30
|
-
"@typescript-eslint/parser": "^5.
|
|
29
|
+
"@types/node": "^20.4.1",
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
31
|
+
"@typescript-eslint/parser": "^5.62.0",
|
|
31
32
|
"del-cli": "^5.0.0",
|
|
32
|
-
"eslint": "^8.
|
|
33
|
+
"eslint": "^8.44.0",
|
|
33
34
|
"eslint-config-prettier": "^8.8.0",
|
|
34
35
|
"eslint-plugin-import": "^2.27.5",
|
|
35
36
|
"eslint-plugin-prettier": "^4.2.1",
|
|
36
37
|
"prettier": "^2.8.8",
|
|
37
|
-
"typescript": "^5.1.
|
|
38
|
+
"typescript": "^5.1.6"
|
|
38
39
|
},
|
|
39
40
|
"homepage": "https://github.com/kibertoad/message-queue-toolkit",
|
|
40
41
|
"repository": {
|