@ultipa-graph/ultipa-driver
Version:
NodeJS SDK for ultipa-server 5.2
117 lines • 4.94 kB
JavaScript
;
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