@azure/cosmos
Version:
Microsoft Azure Cosmos DB Service Node.js SDK for NOSQL API
69 lines (68 loc) • 2.7 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var OrderByQueryProcessingStrategy_exports = {};
__export(OrderByQueryProcessingStrategy_exports, {
OrderByQueryProcessingStrategy: () => OrderByQueryProcessingStrategy
});
module.exports = __toCommonJS(OrderByQueryProcessingStrategy_exports);
var import_OrderByQueryContinuationToken = require("../../documents/ContinuationToken/OrderByQueryContinuationToken.js");
class OrderByQueryProcessingStrategy {
constructor(sortOrders) {
this.sortOrders = sortOrders;
}
/**
* Creates additional query info from ORDER BY continuation token
*/
createAdditionalQueryInfo(parsedToken) {
const orderByToken = parsedToken;
const info = {};
if (orderByToken.orderByItems) info.orderByItems = orderByToken.orderByItems;
if (orderByToken.documentRid) info.rid = orderByToken.documentRid;
return Object.keys(info).length > 0 ? info : void 0;
}
/**
* Creates filter context for ORDER BY continuation token processing
*/
createFilterContext(parsedToken) {
const orderByToken = parsedToken;
return {
orderByItems: orderByToken.orderByItems,
rid: orderByToken.documentRid,
skipCount: orderByToken.skipCount,
sortOrders: this.sortOrders
};
}
/**
* For ORDER BY queries, only apply filter to the target partition (last range in continuation)
*/
getPartitionFilterContext(filterContext, targetPartitionId, partitionTargetRangeId) {
if (!filterContext) return void 0;
const isTargetPartition = targetPartitionId === partitionTargetRangeId;
return isTargetPartition ? filterContext : void 0;
}
/**
* Parses ORDER BY continuation token
*/
parseContinuationToken(continuationToken) {
return (0, import_OrderByQueryContinuationToken.parseOrderByQueryContinuationToken)(continuationToken);
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
OrderByQueryProcessingStrategy
});