@tulioncds/nestjs-nats-streaming-transport
Version:
Fork Nats Streaming Transport for NestJS - Auto Reconnect stan
32 lines • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createConnection = void 0;
const nats = require("nats");
const stan = require("node-nats-streaming");
const createConnection = async (clusterID, clientID, connectOptions, onReconnect) => {
const nc = await nats.connect({
url: connectOptions.url,
servers: connectOptions.servers,
encoding: 'binary',
reconnect: connectOptions.reconnect,
maxPingOut: connectOptions.maxPingOut,
maxReconnectAttempts: connectOptions.maxReconnectAttempts,
reconnectTimeWait: connectOptions.reconnectTimeWait,
verbose: connectOptions.verbose,
waitOnFirstConnect: connectOptions.waitOnFirstConnect,
pingInterval: connectOptions.pingInterval
});
let sc = stan.connect(clusterID, clientID, { nc });
nc.on('reconnect', () => {
sc = stan.connect(clusterID, clientID, { nc });
sc.on('connect', () => {
onReconnect(sc);
});
});
return new Promise((resolve, reject) => {
sc.on('connect', () => resolve(sc));
sc.on('error', err => reject(err));
});
};
exports.createConnection = createConnection;
//# sourceMappingURL=create-stan-connection.js.map