@azure/event-hubs
Version:
Azure Event Hubs SDK for JS.
124 lines (123 loc) • 5.02 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 eventPosition_exports = {};
__export(eventPosition_exports, {
earliestEventPosition: () => earliestEventPosition,
getEventPositionFilter: () => getEventPositionFilter,
isEventPosition: () => isEventPosition,
isLatestPosition: () => isLatestPosition,
latestEventPosition: () => latestEventPosition,
validateEventPositions: () => validateEventPositions
});
module.exports = __toCommonJS(eventPosition_exports);
var import_core_amqp = require("@azure/core-amqp");
var import_core_util = require("@azure/core-util");
function getEventPositionFilter(eventPosition) {
let result;
if ((0, import_core_util.isDefined)(eventPosition.offset)) {
result = eventPosition.isInclusive ? `${import_core_amqp.Constants.offsetAnnotation} >= '${eventPosition.offset}'` : `${import_core_amqp.Constants.offsetAnnotation} > '${eventPosition.offset}'`;
} else if ((0, import_core_util.isDefined)(eventPosition.sequenceNumber)) {
result = eventPosition.isInclusive ? `${import_core_amqp.Constants.sequenceNumberAnnotation} >= '${eventPosition.sequenceNumber}'` : `${import_core_amqp.Constants.sequenceNumberAnnotation} > '${eventPosition.sequenceNumber}'`;
} else if ((0, import_core_util.isDefined)(eventPosition.enqueuedOn)) {
const time = eventPosition.enqueuedOn instanceof Date ? eventPosition.enqueuedOn.getTime() : eventPosition.enqueuedOn;
result = `${import_core_amqp.Constants.enqueuedTimeAnnotation} > '${time}'`;
}
if (!result) {
throw (0, import_core_amqp.translate)({
condition: import_core_amqp.ErrorNameConditionMapper.ArgumentError,
description: "No starting position was set in the EventPosition."
});
}
return result;
}
function isLatestPosition(eventPosition) {
if (eventPosition.offset === "@latest") {
return true;
}
return false;
}
const earliestEventPosition = {
offset: "-1"
};
const latestEventPosition = {
offset: "@latest"
};
function validateEventPositions(position) {
if (!(0, import_core_util.isDefined)(position)) {
return;
}
const keys = Object.keys(position);
if (!keys.length) {
throw new TypeError(
"Invalid value for EventPosition found. Pass an object with either of offset, sequenceNumber or enqueuedOn properties set."
);
}
if (isEventPosition(position)) {
validateEventPosition(position);
return;
}
const positions = position;
for (let i = 0; i < keys.length; i++) {
if (Object.prototype.hasOwnProperty.call(positions, keys[i])) {
validateEventPosition(positions[keys[i]]);
}
}
}
function isEventPosition(position) {
if (!position) {
return false;
}
if ((0, import_core_util.objectHasProperty)(position, "offset") && (0, import_core_util.isDefined)(position.offset)) {
return true;
}
if ((0, import_core_util.objectHasProperty)(position, "sequenceNumber") && (0, import_core_util.isDefined)(position.sequenceNumber)) {
return true;
}
if ((0, import_core_util.objectHasProperty)(position, "enqueuedOn") && (0, import_core_util.isDefined)(position.enqueuedOn)) {
return true;
}
return false;
}
function validateEventPosition(position) {
if (!(0, import_core_util.isDefined)(position)) {
return;
}
const offsetPresent = (0, import_core_util.isDefined)(position.offset);
const sequenceNumberPresent = (0, import_core_util.isDefined)(position.sequenceNumber);
const enqueuedOnPresent = (0, import_core_util.isDefined)(position.enqueuedOn);
if (offsetPresent && sequenceNumberPresent || offsetPresent && enqueuedOnPresent || enqueuedOnPresent && sequenceNumberPresent) {
throw new TypeError(
"Invalid value for EventPosition found. Set only one of offset, sequenceNumber or enqueuedOn properties."
);
}
if (!offsetPresent && !enqueuedOnPresent && !sequenceNumberPresent) {
throw new TypeError(
"Invalid value for EventPosition found. Pass an object with either of offset, sequenceNumber or enqueuedOn properties set."
);
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
earliestEventPosition,
getEventPositionFilter,
isEventPosition,
isLatestPosition,
latestEventPosition,
validateEventPositions
});
//# sourceMappingURL=eventPosition.js.map