UNPKG

@ultipa-graph/ultipa-driver

Version:

NodeJS SDK for ultipa-server 5.2

117 lines 4.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SearchExra = void 0; const connection_base_1 = require("./connection.base"); const utils_1 = require("../../utils"); const { CommandList, VariableString } = utils_1.UQLMAKER; class SearchExra extends connection_base_1.ConnectionBase { /** 自动展开 */ async spread(req, commonReq) { let command = CommandList.nodeSpread; let uqlMaker = new utils_1.UQLMAKER(command, commonReq); uqlMaker.addParam("src", VariableString(req.src)); uqlMaker.addParam("depth", req.depth); uqlMaker.addParam("node_filter", VariableString(req.nodeFilter)); uqlMaker.addParam("edge_filter", VariableString(req.edgeFilter)); if (req.direction) { uqlMaker.addParam("direction", req.direction); } let as = req.as || "paths"; uqlMaker.addParam("as", as); uqlMaker.addParam("return", utils_1.UQLMAKER.Format_RETURN(as, req.return)); if (!!req.limit) { uqlMaker.addParam("limit", req.limit); } let res = await this.uqlSingle(uqlMaker); return { ...res.responseWithoutData, data: res.QueryReply?.singleDataPaths() }; } /** k邻查询 */ async searchKhop(req, commonReq) { let command = CommandList.khop; let uqlMaker = new utils_1.UQLMAKER(command, commonReq); uqlMaker.addParam("src", VariableString(req.src)); uqlMaker.addParam("depth", utils_1.UQLMAKER.Format_DEPTH(req.depth)); uqlMaker.addParam("node_filter", VariableString(req.nodeFilter)); uqlMaker.addParam("edge_filter", VariableString(req.edgeFilter)); if (req.direction) { uqlMaker.addParam("direction", req.direction); } let as = req.as || "nodes"; uqlMaker.addParam("as", as); uqlMaker.addParam("return", utils_1.UQLMAKER.Format_RETURN(as, req.return)); if (!!req.limit) { uqlMaker.addParam("limit", req.limit); } let res = await this.uqlSingle(uqlMaker); return { ...res.responseWithoutData, data: res.QueryReply?.singleDataNodes() }; } /** AB路径查询 */ async searchAb(req, commonReq) { let command = CommandList.ab; let uqlMaker = new utils_1.UQLMAKER(command, commonReq); uqlMaker.addParam("src", VariableString(req.src)); uqlMaker.addParam("dest", VariableString(req.dest)); uqlMaker.addParam("depth", utils_1.UQLMAKER.Format_DEPTH(req.depth)); if (!!req.shortest) { uqlMaker.addParam("shortest", req.shortest); } uqlMaker.addParam("node_filter", VariableString(req.nodeFilter)); uqlMaker.addParam("edge_filter", VariableString(req.edgeFilter)); if (req.pathAsc) { uqlMaker.addParam("path_asc", req.pathAsc); } if (req.pathDesc) { uqlMaker.addParam("path_desc", req.pathDesc); } if (req.direction) { uqlMaker.addParam("direction", req.direction); } uqlMaker.addEmptyParam("no_circle", req.noCircle); let as = req.as || "paths"; uqlMaker.addParam("as", as); uqlMaker.addParam("return", utils_1.UQLMAKER.Format_RETURN(as, req.return)); if (!!req.limit) { uqlMaker.addParam("limit", req.limit); } let res = await this.uqlSingle(uqlMaker); return { ...res.responseWithoutData, data: res.QueryReply?.singleDataPaths() }; } /** 自动组网 */ async searchAutoNet(req, commonReq) { let command = CommandList.autoNet; let uqlMaker = new utils_1.UQLMAKER(command, commonReq); uqlMaker.addParam("src", VariableString(req.src)); if (req.dest) { uqlMaker.addParam("dest", VariableString(req.dest)); } uqlMaker.addParam("depth", utils_1.UQLMAKER.Format_DEPTH(req.depth)); if (!!req.shortest) { uqlMaker.addParam("shortest", req.shortest); } uqlMaker.addParam("node_filter", VariableString(req.nodeFilter)); uqlMaker.addParam("edge_filter", VariableString(req.edgeFilter)); uqlMaker.addEmptyParam("no_circle", req.noCircle); let as = req.as || "paths"; uqlMaker.addParam("as", as); uqlMaker.addParam("return", utils_1.UQLMAKER.Format_RETURN(as, req.return)); if (!!req.limit) { uqlMaker.addParam("limit", req.limit); } let res = await this.uqlSingle(uqlMaker); return { ...res.responseWithoutData, data: res.QueryReply?.singleDataPaths() }; } } exports.SearchExra = SearchExra; //# sourceMappingURL=search.extra.js.map