Files
micro-service-api/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.js
2025-11-11 12:36:06 +07:00

55 lines
2.2 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GEO_REPLY_WITH = void 0;
const GEOSEARCH_1 = __importDefault(require("./GEOSEARCH"));
exports.GEO_REPLY_WITH = {
DISTANCE: 'WITHDIST',
HASH: 'WITHHASH',
COORDINATES: 'WITHCOORD'
};
exports.default = {
IS_READ_ONLY: GEOSEARCH_1.default.IS_READ_ONLY,
/**
* Queries members inside an area of a geospatial index with additional information
* @param parser - The Redis command parser
* @param key - Key of the geospatial index
* @param from - Center point of the search (member name or coordinates)
* @param by - Search area specification (radius or box dimensions)
* @param replyWith - Information to include with each returned member
* @param options - Additional search options
*/
parseCommand(parser, key, from, by, replyWith, options) {
GEOSEARCH_1.default.parseCommand(parser, key, from, by, options);
parser.push(...replyWith);
parser.preserve = replyWith;
},
transformReply(reply, replyWith) {
const replyWithSet = new Set(replyWith);
let index = 0;
const distanceIndex = replyWithSet.has(exports.GEO_REPLY_WITH.DISTANCE) && ++index, hashIndex = replyWithSet.has(exports.GEO_REPLY_WITH.HASH) && ++index, coordinatesIndex = replyWithSet.has(exports.GEO_REPLY_WITH.COORDINATES) && ++index;
return reply.map(raw => {
const unwrapped = raw;
const item = {
member: unwrapped[0]
};
if (distanceIndex) {
item.distance = unwrapped[distanceIndex];
}
if (hashIndex) {
item.hash = unwrapped[hashIndex];
}
if (coordinatesIndex) {
const [longitude, latitude] = unwrapped[coordinatesIndex];
item.coordinates = {
longitude,
latitude
};
}
return item;
});
}
};
//# sourceMappingURL=GEOSEARCH_WITH.js.map