@hotmeshio/hotmesh
Version:
Permanent-Memory Workflows & AI Agents
55 lines (54 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deleteConsumerGroup = exports.createConsumerGroup = exports.deleteStream = exports.createStream = void 0;
/**
* Create a stream (no-op for PostgreSQL - streams are created implicitly).
*/
async function createStream(streamName) {
return true;
}
exports.createStream = createStream;
/**
* Delete a stream or all streams.
*/
async function deleteStream(client, tableName, streamName, logger) {
try {
if (streamName === '*') {
await client.query(`DELETE FROM ${tableName}`);
}
else {
await client.query(`DELETE FROM ${tableName} WHERE stream_name = $1`, [
streamName,
]);
}
return true;
}
catch (error) {
logger.error(`postgres-stream-delete-error-${streamName}`, {
error,
});
throw error;
}
}
exports.deleteStream = deleteStream;
/**
* Create a consumer group (no-op for PostgreSQL - groups are created implicitly).
*/
async function createConsumerGroup(streamName, groupName) {
return true;
}
exports.createConsumerGroup = createConsumerGroup;
/**
* Delete a consumer group (removes all messages for that group).
*/
async function deleteConsumerGroup(client, tableName, streamName, groupName, logger) {
try {
await client.query(`DELETE FROM ${tableName} WHERE stream_name = $1 AND group_name = $2`, [streamName, groupName]);
return true;
}
catch (error) {
logger.error(`postgres-stream-delete-group-error-${streamName}.${groupName}`, { error });
throw error;
}
}
exports.deleteConsumerGroup = deleteConsumerGroup;