@dfeidao/send-msg
Version:
消息总线
57 lines (56 loc) • 2.15 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "log4js", "./config", "./invoke"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const log4js_1 = require("log4js");
const config_1 = __importDefault(require("./config"));
const invoke_1 = __importDefault(require("./invoke"));
const logger = (0, log4js_1.getLogger)();
async function send_msg(headers, msg) {
const m = msg;
const { timestamp } = headers;
const tm = Number(timestamp);
if (tm > 0 && new Date().getTime() - tm > config_1.default.timeout) {
return Promise.reject('Timeout.');
}
if (!Buffer.isBuffer(m) && !m.spaceid) {
m.spaceid = config_1.default.spaceid;
}
const data = await (0, invoke_1.default)(config_1.default.cwd, headers, m);
if (data.buff) {
// todo buff 属于兼容性代码,下个版本去掉
logger.debug('res=buffer');
data.data = data.buff;
delete data.buff;
return data;
}
else if (Buffer.isBuffer(data.data)) {
logger.debug('res=Blob Data.');
// data.data = Buffer.from(JSON.stringify(data.data));
return data;
}
else if (data.data !== undefined) {
logger.debug(`res=${typeof data === 'string' ? data : JSON.stringify(data)}`);
return data;
}
else {
const str = JSON.stringify(data);
logger.debug(`res=${str}`);
return {
content_type: 'application/json',
data: Buffer.from(str)
};
}
}
exports.default = send_msg;
});