UNPKG

rocketmq-client-nodejs

Version:
116 lines 9.22 kB
"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.liteTopic && !this.deliveryTimestamp && !this.priority && !txEnabled) { this.messageType = definition_pb_1.MessageType.NORMAL; return; } // Fifo message. if (this.messageGroup && !txEnabled) { this.messageType = definition_pb_1.MessageType.FIFO; return; } // Lite message. if (this.liteTopic && !txEnabled) { this.messageType = definition_pb_1.MessageType.LITE; return; } // Delay message. if (this.deliveryTimestamp && !txEnabled) { this.messageType = definition_pb_1.MessageType.DELAY; return; } // Priority message. if (this.priority && !txEnabled) { this.messageType = definition_pb_1.MessageType.PRIORITY; return; } // Transaction message. if (!this.messageGroup && !this.liteTopic && !this.deliveryTimestamp && !this.priority && txEnabled) { this.messageType = definition_pb_1.MessageType.TRANSACTION; return; } // Transaction semantics is conflicted with fifo/delay/lite/priority. throw new TypeError('Transactional message should not set messageGroup, liteTopic, deliveryTimestamp or priority'); } /** * 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); } if (this.liteTopic !== undefined) { systemProperties.setLiteTopic(this.liteTopic); } if (this.priority !== undefined) { systemProperties.setPriority(this.priority); } 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVibGlzaGluZ01lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVzc2FnZS9QdWJsaXNoaW5nTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOzs7QUFFSCwrRUFBeUU7QUFDekUsZ0ZBRXNEO0FBRXRELGtDQUF5QztBQUV6QyxzQ0FBc0M7QUFDdEMsdUNBQW9EO0FBQ3BELDJDQUErQztBQUUvQyxNQUFhLGlCQUFrQixTQUFRLGlCQUFPO0lBQ25DLFNBQVMsQ0FBUztJQUNsQixXQUFXLENBQWM7SUFFbEMsWUFBWSxPQUF1QixFQUFFLGtCQUFzQyxFQUFFLFNBQWtCO1FBQzdGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7UUFDN0QsSUFBSSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksU0FBUyxDQUFDLHFEQUFxRCxnQkFBZ0IsUUFBUSxDQUFDLENBQUM7UUFDckcsQ0FBQztRQUNELHVCQUF1QjtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLDRCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RELGtCQUFrQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDckcsSUFBSSxDQUFDLFdBQVcsR0FBRywyQkFBVyxDQUFDLE1BQU0sQ0FBQztZQUN0QyxPQUFPO1FBQ1QsQ0FBQztRQUNELGdCQUFnQjtRQUNoQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLDJCQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BDLE9BQU87UUFDVCxDQUFDO1FBQ0QsZ0JBQWdCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsMkJBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFDRCxpQkFBaUI7UUFDakIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLDJCQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBQ0Qsb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsMkJBQVcsQ0FBQyxRQUFRLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFDRCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQ2xCLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDOUUsSUFBSSxDQUFDLFdBQVcsR0FBRywyQkFBVyxDQUFDLFdBQVcsQ0FBQztZQUMzQyxPQUFPO1FBQ1QsQ0FBQztRQUNELHFFQUFxRTtRQUNyRSxNQUFNLElBQUksU0FBUyxDQUFDLDZGQUE2RixDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxTQUFpQixFQUFFLEVBQWdCO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQ0FBZ0IsRUFBRTthQUM1QyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUM1QixnQkFBZ0IsQ0FBQyx3QkFBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7YUFDaEQsV0FBVyxDQUFDLGtCQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQzthQUN4QyxlQUFlLENBQUMsd0JBQVEsQ0FBQyxRQUFRLENBQUM7YUFDbEMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDdEIsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNiLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsd0JBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFBLHFCQUFjLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLHVCQUFTLEVBQUU7YUFDNUIsUUFBUSxDQUFDLFFBQVEsQ0FBQzthQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNsQixtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3RELEtBQUssTUFBTSxDQUFFLEdBQUcsRUFBRSxLQUFLLENBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ3ZELGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBM0ZELDhDQTJGQyJ9