couchbase
Version:
The official Couchbase Node.js Client Library.
110 lines (109 loc) • 4.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.PingExecutor = exports.DiagnoticsExecutor = void 0;
/* eslint jsdoc/require-jsdoc: off */
const bindingutilities_1 = require("./bindingutilities");
const diagnosticstypes_1 = require("./diagnosticstypes");
/**
* @internal
*/
class DiagnoticsExecutor {
/**
* @internal
*/
constructor(cluster) {
this._cluster = cluster;
}
/**
* @internal
*/
async diagnostics(options) {
return new Promise((resolve, reject) => {
this._cluster.conn.diagnostics({
report_id: options.reportId,
}, (cppErr, resp) => {
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
if (err || !resp) {
reject(err);
return;
}
resolve(new diagnosticstypes_1.DiagnosticsResult({
version: resp.version,
id: resp.id,
sdk: resp.sdk,
services: Object.fromEntries(Object.entries(resp.services).map(([serviceType, services]) => {
return [
(0, bindingutilities_1.serviceTypeFromCpp)(parseInt(serviceType)),
services.map((svc) => {
return new diagnosticstypes_1.DiagnosticsEndpoint({
type: (0, bindingutilities_1.serviceTypeFromCpp)(svc.type),
id: svc.id,
local: svc.local,
remote: svc.remote,
lastActivity: svc.last_activity,
state: (0, bindingutilities_1.endpointStateFromCpp)(svc.state),
});
}),
];
})),
}));
});
});
}
}
exports.DiagnoticsExecutor = DiagnoticsExecutor;
/**
* @internal
*/
class PingExecutor {
/**
* @internal
*/
constructor(cluster) {
this._cluster = cluster;
}
/**
* @internal
*/
async ping(options) {
return new Promise((resolve, reject) => {
// BUG(JSCBC-993): timeout is not currently sent to the C++ client
options.timeout;
this._cluster.conn.ping({
report_id: options.reportId,
services: options.serviceTypes
? options.serviceTypes.map((svc) => (0, bindingutilities_1.serviceTypeToCpp)(svc))
: undefined,
}, (cppErr, resp) => {
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
if (err || !resp) {
reject(err);
return;
}
resolve(new diagnosticstypes_1.PingResult({
version: resp.version,
id: resp.id,
sdk: resp.sdk,
services: Object.fromEntries(Object.entries(resp.services).map(([serviceType, services]) => {
return [
(0, bindingutilities_1.serviceTypeFromCpp)(parseInt(serviceType)),
services.map((svc) => {
return new diagnosticstypes_1.PingEndpoint({
type: (0, bindingutilities_1.serviceTypeFromCpp)(svc.type),
id: svc.id,
latency: svc.latency,
remote: svc.remote,
local: svc.local,
state: (0, bindingutilities_1.pingStateFromCpp)(svc.state),
bucket: svc.bucket,
error: svc.error,
});
}),
];
})),
}));
});
});
}
}
exports.PingExecutor = PingExecutor;
;