@kurrent/kurrentdb-client
Version:
KurrentDB gRPC NodeJS Client SDK
49 lines • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const persistent_pb_1 = require("../../generated/persistent_pb");
const persistent_grpc_pb_1 = require("../../generated/persistent_grpc_pb");
const utils_1 = require("../utils");
const constants_1 = require("../constants");
const Client_1 = require("../Client");
const settingsToGRPC_1 = require("./utils/settingsToGRPC");
Client_1.Client.prototype.updatePersistentSubscriptionToStream = async function (streamName, groupName, settings, baseOptions = {}) {
const req = new persistent_pb_1.UpdateReq();
const options = new persistent_pb_1.UpdateReq.Options();
const identifier = (0, utils_1.createStreamIdentifier)(streamName);
const reqSettings = (0, settingsToGRPC_1.settingsToGRPC)(settings, persistent_pb_1.UpdateReq.Settings);
// Add deprecated revision option for pre-21.10 support
switch (settings.startFrom) {
case constants_1.START: {
reqSettings.setRevision(BigInt(0).toString(10));
break;
}
case constants_1.END: {
// This is the largest possible value of UInt64
reqSettings.setRevision("18446744073709551615");
break;
}
default: {
reqSettings.setRevision(settings.startFrom.toString(10));
break;
}
}
options.setGroupName(groupName);
options.setStreamIdentifier(identifier);
options.setSettings(reqSettings);
req.setOptions(options);
utils_1.debug.command("updatePersistentSubscriptionToStream: %O", {
streamName,
groupName,
settings,
options: baseOptions,
});
utils_1.debug.command_grpc("updatePersistentSubscriptionToStream: %g", req);
return this.execute(persistent_grpc_pb_1.PersistentSubscriptionsClient, "updatePersistentSubscriptionToStream", (client) => new Promise((resolve, reject) => {
client.update(req, ...this.callArguments(baseOptions), (error) => {
if (error)
return reject((0, utils_1.convertToCommandError)(error));
return resolve();
});
}));
};
//# sourceMappingURL=updatePersistentSubscriptionToStream.js.map