rocketmq-client-nodejs-beta
Version:
RocketMQ Node.js Client
100 lines • 7.78 kB
JavaScript
"use strict";
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.PublishingMessage = void 0;
const timestamp_pb_1 = require("google-protobuf/google/protobuf/timestamp_pb");
const definition_pb_1 = require("../../proto/apache/rocketmq/v2/definition_pb");
const util_1 = require("../util");
const client_1 = require("../client");
const Message_1 = require("./Message");
const MessageId_1 = require("./MessageId");
class PublishingMessage extends Message_1.Message {
messageId;
messageType;
constructor(options, publishingSettings, txEnabled) {
super(options);
const length = this.body.length;
const maxBodySizeBytes = publishingSettings.maxBodySizeBytes;
if (length > maxBodySizeBytes) {
throw new TypeError(`Message body size exceeds the threshold, max size=${maxBodySizeBytes} bytes`);
}
// Generate message id.
this.messageId = MessageId_1.MessageIdFactory.create().toString();
// Normal message.
if (!this.messageGroup && !this.deliveryTimestamp && !txEnabled) {
this.messageType = definition_pb_1.MessageType.NORMAL;
return;
}
// Fifo message.
if (this.messageGroup && !txEnabled) {
this.messageType = definition_pb_1.MessageType.FIFO;
return;
}
// Delay message.
if (this.deliveryTimestamp && !txEnabled) {
this.messageType = definition_pb_1.MessageType.DELAY;
return;
}
// Transaction message.
if (!this.messageGroup &&
!this.deliveryTimestamp && txEnabled) {
this.messageType = definition_pb_1.MessageType.TRANSACTION;
return;
}
// Transaction semantics is conflicted with fifo/delay.
throw new TypeError('Transactional message should not set messageGroup or deliveryTimestamp');
}
/**
* This method should be invoked before each message sending, because the born time is reset before each
* invocation, which means that it should not be invoked ahead of time.
*/
toProtobuf(namespace, mq) {
const systemProperties = new definition_pb_1.SystemProperties()
.setKeysList(this.keys)
.setMessageId(this.messageId)
.setBornTimestamp(timestamp_pb_1.Timestamp.fromDate(new Date()))
.setBornHost(client_1.UserAgent.INSTANCE.hostname)
.setBodyEncoding(definition_pb_1.Encoding.IDENTITY)
.setQueueId(mq.queueId)
.setMessageType(this.messageType);
if (this.tag) {
systemProperties.setTag(this.tag);
}
if (this.deliveryTimestamp) {
systemProperties.setDeliveryTimestamp(timestamp_pb_1.Timestamp.fromDate(this.deliveryTimestamp));
}
if (this.messageGroup) {
systemProperties.setMessageGroup(this.messageGroup);
}
const resource = (0, util_1.createResource)(this.topic);
resource.setResourceNamespace(namespace);
const message = new definition_pb_1.Message()
.setTopic(resource)
.setBody(this.body)
.setSystemProperties(systemProperties);
if (this.properties) {
const userProperties = message.getUserPropertiesMap();
for (const [key, value] of this.properties.entries()) {
userProperties.set(key, value);
}
}
return message;
}
}
exports.PublishingMessage = PublishingMessage;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVibGlzaGluZ01lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVzc2FnZS9QdWJsaXNoaW5nTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOzs7QUFFSCwrRUFBeUU7QUFDekUsZ0ZBRXNEO0FBRXRELGtDQUF5QztBQUV6QyxzQ0FBc0M7QUFDdEMsdUNBQW9EO0FBQ3BELDJDQUErQztBQUUvQyxNQUFhLGlCQUFrQixTQUFRLGlCQUFPO0lBQ25DLFNBQVMsQ0FBUztJQUNsQixXQUFXLENBQWM7SUFFbEMsWUFBWSxPQUF1QixFQUFFLGtCQUFzQyxFQUFFLFNBQWtCO1FBQzdGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7UUFDN0QsSUFBSSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksU0FBUyxDQUFDLHFEQUFxRCxnQkFBZ0IsUUFBUSxDQUFDLENBQUM7UUFDckcsQ0FBQztRQUNELHVCQUF1QjtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLDRCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RELGtCQUFrQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxXQUFXLEdBQUcsMkJBQVcsQ0FBQyxNQUFNLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFDRCxnQkFBZ0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRywyQkFBVyxDQUFDLElBQUksQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUNELGlCQUFpQjtRQUNqQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsMkJBQVcsQ0FBQyxLQUFLLENBQUM7WUFDckMsT0FBTztRQUNULENBQUM7UUFDRCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQ2xCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsMkJBQVcsQ0FBQyxXQUFXLENBQUM7WUFDM0MsT0FBTztRQUNULENBQUM7UUFDRCx1REFBdUQ7UUFDdkQsTUFBTSxJQUFJLFNBQVMsQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsU0FBaUIsRUFBRSxFQUFnQjtRQUM1QyxNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWdCLEVBQUU7YUFDNUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDdEIsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDNUIsZ0JBQWdCLENBQUMsd0JBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2hELFdBQVcsQ0FBQyxrQkFBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDeEMsZUFBZSxDQUFDLHdCQUFRLENBQUMsUUFBUSxDQUFDO2FBQ2xDLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ3RCLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDYixnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLHdCQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUEscUJBQWMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksdUJBQVMsRUFBRTthQUM1QixRQUFRLENBQUMsUUFBUSxDQUFDO2FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2xCLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDdEQsS0FBSyxNQUFNLENBQUUsR0FBRyxFQUFFLEtBQUssQ0FBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDdkQsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUEzRUQsOENBMkVDIn0=