UNPKG

@ultipa-graph/ultipa-driver

Version:

NodeJS SDK for ultipa-server 5.2

111 lines 4.4 kB
"use strict"; 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