UNPKG

bmqb-mns

Version:
71 lines (59 loc) 1.88 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _aliMns = require('ali-mns'); var _jsonpack = require('jsonpack'); var _jsonpack2 = _interopRequireDefault(_jsonpack); var _mq_msg = require('../../mq_msg'); var _mq_msg2 = _interopRequireDefault(_mq_msg); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class MNSAdapter { constructor(_ref) { let accountId = _ref.accountId; let accessKey = _ref.accessKey; let secretKey = _ref.secretKey; let topicName = _ref.topicName; var _ref$region = _ref.region; let region = _ref$region === undefined ? 'hangzhou' : _ref$region; if (!accessKey || !secretKey || !accountId) { throw new Error('invalid arguments'); } this.config = { accountId: accountId, accessKey: accessKey, secretKey: secretKey, topicName: topicName, region: region }; } getAccount() { if (this.account) { return this.account; } this.account = new _aliMns.Account(this.config.accountId, this.config.accessKey, this.config.secretKey); return this.account; } getTopicHandler() { if (this.topicHandler) { return this.topicHandler; } this.topicHandler = new _aliMns.Topic(this.config.topicName, this.getAccount(), this.config.region); return this.topicHandler; } /** * @params msg {MQMsg} 支持字符串、json格式 // 暂时不支持延时等 */ publishMsg(msg) { return Promise.resolve().then(() => { if (!(msg instanceof _mq_msg2.default)) { throw new Error('msg must be a MQMsg Object!'); } return this.getTopicHandler().publishP(_jsonpack2.default.pack(msg.getMsg())).then(message => { msg.setId(message.Message.MessageId); return msg; }); }); } } exports.default = MNSAdapter;