@ultipa-graph/ultipa-driver
Version:
NodeJS SDK for ultipa-server 5.2
111 lines • 4.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseExtra = void 0;
const connection_base_1 = require("./connection.base");
const utils_1 = require("../../utils");
const ultipa_pb_1 = require("../../proto/ultipa_pb");
const types_1 = require("../../types/types");
const { CommandList } = utils_1.UQLMAKER;
class BaseExtra extends connection_base_1.ConnectionBase {
/**
* Checking database server statistics.
*/
async stats(config) {
// let command = CommandList.stats
let command = CommandList.licenseDump;
let uqlMaker = new utils_1.UQLMAKER(command, config);
return await this.uql(uqlMaker.toString(), config);
}
/**
* Download file from server.
*/
async download(fileName, config) {
let req = new ultipa_pb_1.DownloadFileRequest();
req.setFileName(fileName);
let clientInfo = await this.getClientInfo({
graphSetName: config?.graph,
timezone: config?.timezone,
timezoneOffset: config?.timezoneOffset,
});
let stream = clientInfo.client.controlsClient.downloadFile(req, clientInfo.metadata);
utils_1.streamHelper.commonDeal(stream, config?.stream, (chunkData) => {
let status = utils_1.FormatType.status(chunkData.getStatus());
if (status.code != types_1.ErrorCode.SUCCESS) {
let err = new Error(status.message);
err.code = status.code;
throw err;
}
let data = Buffer.from(chunkData.getChunk());
return data;
});
return stream;
}
/**
* Exports nodes and edges from the current graph.
*/
async export(exportRequest, listener) {
let clientInfo = await this.getClientInfo({
graphSetName: exportRequest.getGraph() || listener?.graph,
timezone: listener?.timezone,
timezoneOffset: listener?.timezoneOffset,
});
await new Promise((resolve, reject) => {
const originalCb = listener?.stream;
const wrappedCb = {
onData: async (data) => {
try {
await originalCb.onData(data);
}
catch (error) {
reject(error);
}
},
onEnd: () => {
originalCb.onEnd();
resolve();
},
onClose: () => {
resolve();
originalCb.onClose?.();
},
onError: (err) => {
reject(err);
originalCb.onError?.(err);
},
onPause: () => {
originalCb.onPause?.();
},
onReadable: () => {
originalCb.onReadable?.();
},
onResume: () => {
originalCb.onResume?.();
},
onStart: () => {
originalCb.onStart?.();
},
};
// config.stream = wrappedCb;
let stream = clientInfo.client.controlsClient.export(exportRequest, clientInfo.metadata);
utils_1.streamHelper.commonDeal(stream, wrappedCb, (chunkData) => {
let status = utils_1.FormatType.status(chunkData.getStatus());
if (status.code != types_1.ErrorCode.SUCCESS) {
let err = new Error(status.message);
err.code = status.code;
throw err;
}
if (exportRequest.getDbType() == ultipa_pb_1.DBType.DBNODE) {
let nodes = chunkData.getNodeTable();
return utils_1.FormatType.nodeTable(nodes, { timezone: listener.timezone });
}
else {
let edges = chunkData.getEdgeTable();
return utils_1.FormatType.edgeTable(edges, { timezone: listener.timezone });
}
});
});
// let req = new ExportRequest()
}
}
exports.BaseExtra = BaseExtra;
//# sourceMappingURL=base.extra.js.map