package.dist.src.topic-client.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sdk Show documentation
Show all versions of sdk Show documentation
Client SDK for Momento services
The newest version!
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TopicClient = void 0;
const AbstractTopicClient_1 = require("@gomomento/sdk-core/dist/src/internal/clients/pubsub/AbstractTopicClient");
const _1 = require(".");
const pubsub_client_1 = require("./internal/pubsub-client");
const webhook_client_1 = require("./internal/webhook-client");
const utils_1 = require("@gomomento/sdk-core/dist/src/internal/utils");
const sdk_core_1 = require("@gomomento/sdk-core");
/**
* Momento Topic Client.
*
* Publish and subscribe to topics.
*/
class TopicClient extends AbstractTopicClient_1.AbstractTopicClient {
/**
* Creates an instance of TopicClient.
*/
constructor(props) {
var _a, _b;
const allProps = {
credentialProvider: (_a = props === null || props === void 0 ? void 0 : props.credentialProvider) !== null && _a !== void 0 ? _a : (0, sdk_core_1.getDefaultCredentialProvider)(),
configuration: (_b = props === null || props === void 0 ? void 0 : props.configuration) !== null && _b !== void 0 ? _b : getDefaultTopicClientConfiguration(),
};
const numClients = allProps.configuration
.getTransportStrategy()
.getGrpcConfig()
.getNumClients();
super(allProps.configuration.getLoggerFactory().getLogger(TopicClient.name), (0, utils_1.range)(numClients).map(_ => new pubsub_client_1.PubsubClient(allProps)), new webhook_client_1.WebhookClient(allProps));
this.logger.debug('Instantiated Momento TopicClient');
}
}
exports.TopicClient = TopicClient;
function getDefaultTopicClientConfiguration() {
const config = _1.TopicConfigurations.Default.latest();
const logger = config.getLoggerFactory().getLogger('TopicClient');
logger.info('No configuration provided to TopicClient. Using latest "Default" configuration, suitable for development. For production use, consider specifying an explicit configuration.');
return config;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RvcGljLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrSEFBNkc7QUFDN0csd0JBQTBEO0FBQzFELDREQUFzRDtBQUV0RCw4REFBd0Q7QUFFeEQsdUVBQWtFO0FBQ2xFLGtEQUFpRTtBQUVqRTs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEseUNBQW1CO0lBQ2xEOztPQUVHO0lBQ0gsWUFBWSxLQUF3Qjs7UUFDbEMsTUFBTSxRQUFRLEdBQXdCO1lBQ3BDLGtCQUFrQixFQUNoQixNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxrQkFBa0IsbUNBQUksSUFBQSx1Q0FBNEIsR0FBRTtZQUM3RCxhQUFhLEVBQ1gsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsYUFBYSxtQ0FBSSxrQ0FBa0MsRUFBRTtTQUMvRCxDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWE7YUFDdEMsb0JBQW9CLEVBQUU7YUFDdEIsYUFBYSxFQUFFO2FBQ2YsYUFBYSxFQUFFLENBQUM7UUFFbkIsS0FBSyxDQUNILFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUNyRSxJQUFBLGFBQUssRUFBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLDRCQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDdEQsSUFBSSw4QkFBYSxDQUFDLFFBQVEsQ0FBQyxDQUM1QixDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0Y7QUF6QkQsa0NBeUJDO0FBRUQsU0FBUyxrQ0FBa0M7SUFDekMsTUFBTSxNQUFNLEdBQUcsc0JBQW1CLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRSxNQUFNLENBQUMsSUFBSSxDQUNULDhLQUE4SyxDQUMvSyxDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWJzdHJhY3RUb3BpY0NsaWVudH0gZnJvbSAnQGdvbW9tZW50by9zZGstY29yZS9kaXN0L3NyYy9pbnRlcm5hbC9jbGllbnRzL3B1YnN1Yi9BYnN0cmFjdFRvcGljQ2xpZW50JztcbmltcG9ydCB7VG9waWNDb25maWd1cmF0aW9uLCBUb3BpY0NvbmZpZ3VyYXRpb25zfSBmcm9tICcuJztcbmltcG9ydCB7UHVic3ViQ2xpZW50fSBmcm9tICcuL2ludGVybmFsL3B1YnN1Yi1jbGllbnQnO1xuaW1wb3J0IHtUb3BpY0NsaWVudFByb3BzfSBmcm9tICcuL3RvcGljLWNsaWVudC1wcm9wcyc7XG5pbXBvcnQge1dlYmhvb2tDbGllbnR9IGZyb20gJy4vaW50ZXJuYWwvd2ViaG9vay1jbGllbnQnO1xuaW1wb3J0IHtUb3BpY0NsaWVudEFsbFByb3BzfSBmcm9tICcuL2ludGVybmFsL3RvcGljLWNsaWVudC1hbGwtcHJvcHMnO1xuaW1wb3J0IHtyYW5nZX0gZnJvbSAnQGdvbW9tZW50by9zZGstY29yZS9kaXN0L3NyYy9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQge2dldERlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXJ9IGZyb20gJ0Bnb21vbWVudG8vc2RrLWNvcmUnO1xuXG4vKipcbiAqIE1vbWVudG8gVG9waWMgQ2xpZW50LlxuICpcbiAqIFB1Ymxpc2ggYW5kIHN1YnNjcmliZSB0byB0b3BpY3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBUb3BpY0NsaWVudCBleHRlbmRzIEFic3RyYWN0VG9waWNDbGllbnQge1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBUb3BpY0NsaWVudC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzPzogVG9waWNDbGllbnRQcm9wcykge1xuICAgIGNvbnN0IGFsbFByb3BzOiBUb3BpY0NsaWVudEFsbFByb3BzID0ge1xuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyOlxuICAgICAgICBwcm9wcz8uY3JlZGVudGlhbFByb3ZpZGVyID8/IGdldERlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIoKSxcbiAgICAgIGNvbmZpZ3VyYXRpb246XG4gICAgICAgIHByb3BzPy5jb25maWd1cmF0aW9uID8/IGdldERlZmF1bHRUb3BpY0NsaWVudENvbmZpZ3VyYXRpb24oKSxcbiAgICB9O1xuXG4gICAgY29uc3QgbnVtQ2xpZW50cyA9IGFsbFByb3BzLmNvbmZpZ3VyYXRpb25cbiAgICAgIC5nZXRUcmFuc3BvcnRTdHJhdGVneSgpXG4gICAgICAuZ2V0R3JwY0NvbmZpZygpXG4gICAgICAuZ2V0TnVtQ2xpZW50cygpO1xuXG4gICAgc3VwZXIoXG4gICAgICBhbGxQcm9wcy5jb25maWd1cmF0aW9uLmdldExvZ2dlckZhY3RvcnkoKS5nZXRMb2dnZXIoVG9waWNDbGllbnQubmFtZSksXG4gICAgICByYW5nZShudW1DbGllbnRzKS5tYXAoXyA9PiBuZXcgUHVic3ViQ2xpZW50KGFsbFByb3BzKSksXG4gICAgICBuZXcgV2ViaG9va0NsaWVudChhbGxQcm9wcylcbiAgICApO1xuXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luc3RhbnRpYXRlZCBNb21lbnRvIFRvcGljQ2xpZW50Jyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdFRvcGljQ2xpZW50Q29uZmlndXJhdGlvbigpOiBUb3BpY0NvbmZpZ3VyYXRpb24ge1xuICBjb25zdCBjb25maWcgPSBUb3BpY0NvbmZpZ3VyYXRpb25zLkRlZmF1bHQubGF0ZXN0KCk7XG4gIGNvbnN0IGxvZ2dlciA9IGNvbmZpZy5nZXRMb2dnZXJGYWN0b3J5KCkuZ2V0TG9nZ2VyKCdUb3BpY0NsaWVudCcpO1xuICBsb2dnZXIuaW5mbyhcbiAgICAnTm8gY29uZmlndXJhdGlvbiBwcm92aWRlZCB0byBUb3BpY0NsaWVudC4gVXNpbmcgbGF0ZXN0IFwiRGVmYXVsdFwiIGNvbmZpZ3VyYXRpb24sIHN1aXRhYmxlIGZvciBkZXZlbG9wbWVudC4gRm9yIHByb2R1Y3Rpb24gdXNlLCBjb25zaWRlciBzcGVjaWZ5aW5nIGFuIGV4cGxpY2l0IGNvbmZpZ3VyYXRpb24uJ1xuICApO1xuICByZXR1cm4gY29uZmlnO1xufVxuIl19
© 2015 - 2025 Weber Informatics LLC | Privacy Policy