@provide/nats.ws
Version:
NATS websocket client
75 lines • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const databuffer_1 = require("./databuffer");
let CRLF = databuffer_1.DataBuffer.fromAscii("\r\n");
let CR = new Uint8Array(CRLF)[0];
let LF = new Uint8Array(CRLF)[1];
function isArrayBuffer(a) {
return a instanceof ArrayBuffer;
}
exports.isArrayBuffer = isArrayBuffer;
function extend(a, ...b) {
for (let i = 0; i < b.length; i++) {
let o = b[i];
Object.keys(o).forEach(function (k) {
a[k] = o[k];
});
}
return a;
}
exports.extend = extend;
function protoLen(a) {
let ba = new Uint8Array(a);
for (let i = 0; i < ba.byteLength; i++) {
let n = i + 1;
if (ba.byteLength > n && ba[i] === CR && ba[n] === LF) {
return n + 1;
}
}
return -1;
}
function extractProtocolMessage(a) {
let len = protoLen(a);
if (len) {
let ba = new Uint8Array(a);
let small = ba.slice(0, len);
return String.fromCharCode.apply(null, small);
}
return "";
}
exports.extractProtocolMessage = extractProtocolMessage;
function buildWSMessage(protocol, a) {
let msg = databuffer_1.DataBuffer.fromAscii(protocol);
if (a) {
msg = databuffer_1.DataBuffer.concat(msg, a, CRLF);
}
return msg;
}
exports.buildWSMessage = buildWSMessage;
function settle(a) {
if (Array.isArray(a)) {
return Promise.resolve(a).then(_settle);
}
else {
return Promise.reject(new TypeError('argument requires an array of promises'));
}
}
exports.settle = settle;
function stringToUint8Array(str) {
const chars = str.split('');
const uintArray = [];
for (var i = 0; i < chars.length; i++) {
uintArray.push(chars[i].charCodeAt(0));
}
return new Uint8Array(uintArray);
}
exports.stringToUint8Array = stringToUint8Array;
function _settle(a) {
return Promise.all(a.map((p) => {
return Promise.resolve(p).then(_resolve, _resolve);
}));
}
function _resolve(r) {
return r;
}
//# sourceMappingURL=util.js.map