All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.dist.src.config.topic-configurations.js Maven / Gradle / Ivy

The newest version!
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Lambda = exports.Default = void 0;
const default_momento_logger_1 = require("./logging/default-momento-logger");
const topic_configuration_1 = require("./topic-configuration");
const topics_1 = require("./transport/topics");
const defaultLoggerFactory = new default_momento_logger_1.DefaultMomentoLoggerFactory();
/**
 * Default config provides defaults suitable for most environments; prioritizes success of publishing and receiving messages.
 * @export
 * @class Default
 */
class Default extends topic_configuration_1.TopicClientConfiguration {
    /**
     * Provides the latest recommended configuration for a default environment.  NOTE: this configuration may
     * change in future releases to take advantage of improvements we identify for default configurations.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {TopicConfiguration}
     */
    static latest(loggerFactory = defaultLoggerFactory) {
        return new topic_configuration_1.TopicClientConfiguration({
            loggerFactory: loggerFactory,
            transportStrategy: new topics_1.StaticTopicTransportStrategy({
                grpcConfiguration: new topics_1.StaticTopicGrpcConfiguration({
                    numClients: 1,
                    keepAlivePermitWithoutCalls: 1,
                    keepAliveTimeMs: 5000,
                    keepAliveTimeoutMs: 1000,
                }),
            }),
            throwOnErrors: false,
        });
    }
}
exports.Default = Default;
/**
 * Default config provides defaults suitable for AWS lambda or similar environments; relaxes timeouts, disables keep-alives
 * to avoid issues with execution environments being frozen and resumed, etc.
 * @export
 * @class Lambda
 */
class Lambda extends topic_configuration_1.TopicClientConfiguration {
    /**
     * Provides the latest recommended configuration for a lambda environment.  NOTE: this configuration may
     * change in future releases to take advantage of improvements we identify for default configurations.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {CacheConfiguration}
     */
    static latest(loggerFactory = defaultLoggerFactory) {
        const grpcConfig = new topics_1.StaticTopicGrpcConfiguration({
            numClients: 1,
        });
        const transportStrategy = new topics_1.StaticTopicTransportStrategy({
            grpcConfiguration: grpcConfig,
        });
        return new Lambda({
            loggerFactory: loggerFactory,
            transportStrategy: transportStrategy,
            throwOnErrors: false,
        });
    }
}
exports.Lambda = Lambda;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL3RvcGljLWNvbmZpZ3VyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZFQUE2RTtBQUM3RSwrREFHK0I7QUFDL0IsK0NBRzRCO0FBRTVCLE1BQU0sb0JBQW9CLEdBQ3hCLElBQUksb0RBQTJCLEVBQUUsQ0FBQztBQUVwQzs7OztHQUlHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsOENBQXdCO0lBQ25EOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FDWCxnQkFBc0Msb0JBQW9CO1FBRTFELE9BQU8sSUFBSSw4Q0FBd0IsQ0FBQztZQUNsQyxhQUFhLEVBQUUsYUFBYTtZQUM1QixpQkFBaUIsRUFBRSxJQUFJLHFDQUE0QixDQUFDO2dCQUNsRCxpQkFBaUIsRUFBRSxJQUFJLHFDQUE0QixDQUFDO29CQUNsRCxVQUFVLEVBQUUsQ0FBQztvQkFDYiwyQkFBMkIsRUFBRSxDQUFDO29CQUM5QixlQUFlLEVBQUUsSUFBSTtvQkFDckIsa0JBQWtCLEVBQUUsSUFBSTtpQkFDekIsQ0FBQzthQUNILENBQUM7WUFDRixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2QkQsMEJBdUJDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLE1BQU8sU0FBUSw4Q0FBd0I7SUFDbEQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUNYLGdCQUFzQyxvQkFBb0I7UUFFMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxxQ0FBNEIsQ0FBQztZQUNsRCxVQUFVLEVBQUUsQ0FBQztTQUNkLENBQUMsQ0FBQztRQUNILE1BQU0saUJBQWlCLEdBQUcsSUFBSSxxQ0FBNEIsQ0FBQztZQUN6RCxpQkFBaUIsRUFBRSxVQUFVO1NBQzlCLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxNQUFNLENBQUM7WUFDaEIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsaUJBQWlCLEVBQUUsaUJBQWlCO1lBQ3BDLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXRCRCx3QkFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vbWVudG9Mb2dnZXJGYWN0b3J5fSBmcm9tICdAZ29tb21lbnRvL3Nkay1jb3JlJztcbmltcG9ydCB7RGVmYXVsdE1vbWVudG9Mb2dnZXJGYWN0b3J5fSBmcm9tICcuL2xvZ2dpbmcvZGVmYXVsdC1tb21lbnRvLWxvZ2dlcic7XG5pbXBvcnQge1xuICBUb3BpY0NsaWVudENvbmZpZ3VyYXRpb24sXG4gIFRvcGljQ29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi90b3BpYy1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7XG4gIFN0YXRpY1RvcGljR3JwY0NvbmZpZ3VyYXRpb24sXG4gIFN0YXRpY1RvcGljVHJhbnNwb3J0U3RyYXRlZ3ksXG59IGZyb20gJy4vdHJhbnNwb3J0L3RvcGljcyc7XG5cbmNvbnN0IGRlZmF1bHRMb2dnZXJGYWN0b3J5OiBNb21lbnRvTG9nZ2VyRmFjdG9yeSA9XG4gIG5ldyBEZWZhdWx0TW9tZW50b0xvZ2dlckZhY3RvcnkoKTtcblxuLyoqXG4gKiBEZWZhdWx0IGNvbmZpZyBwcm92aWRlcyBkZWZhdWx0cyBzdWl0YWJsZSBmb3IgbW9zdCBlbnZpcm9ubWVudHM7IHByaW9yaXRpemVzIHN1Y2Nlc3Mgb2YgcHVibGlzaGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLlxuICogQGV4cG9ydFxuICogQGNsYXNzIERlZmF1bHRcbiAqL1xuZXhwb3J0IGNsYXNzIERlZmF1bHQgZXh0ZW5kcyBUb3BpY0NsaWVudENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIGxhdGVzdCByZWNvbW1lbmRlZCBjb25maWd1cmF0aW9uIGZvciBhIGRlZmF1bHQgZW52aXJvbm1lbnQuICBOT1RFOiB0aGlzIGNvbmZpZ3VyYXRpb24gbWF5XG4gICAqIGNoYW5nZSBpbiBmdXR1cmUgcmVsZWFzZXMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgaW1wcm92ZW1lbnRzIHdlIGlkZW50aWZ5IGZvciBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zLlxuICAgKiBAcGFyYW0ge01vbWVudG9Mb2dnZXJGYWN0b3J5fSBbbG9nZ2VyRmFjdG9yeT1kZWZhdWx0TG9nZ2VyRmFjdG9yeV1cbiAgICogQHJldHVybnMge1RvcGljQ29uZmlndXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBsYXRlc3QoXG4gICAgbG9nZ2VyRmFjdG9yeTogTW9tZW50b0xvZ2dlckZhY3RvcnkgPSBkZWZhdWx0TG9nZ2VyRmFjdG9yeVxuICApOiBUb3BpY0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgVG9waWNDbGllbnRDb25maWd1cmF0aW9uKHtcbiAgICAgIGxvZ2dlckZhY3Rvcnk6IGxvZ2dlckZhY3RvcnksXG4gICAgICB0cmFuc3BvcnRTdHJhdGVneTogbmV3IFN0YXRpY1RvcGljVHJhbnNwb3J0U3RyYXRlZ3koe1xuICAgICAgICBncnBjQ29uZmlndXJhdGlvbjogbmV3IFN0YXRpY1RvcGljR3JwY0NvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgIG51bUNsaWVudHM6IDEsXG4gICAgICAgICAga2VlcEFsaXZlUGVybWl0V2l0aG91dENhbGxzOiAxLFxuICAgICAgICAgIGtlZXBBbGl2ZVRpbWVNczogNTAwMCxcbiAgICAgICAgICBrZWVwQWxpdmVUaW1lb3V0TXM6IDEwMDAsXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICB0aHJvd09uRXJyb3JzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIERlZmF1bHQgY29uZmlnIHByb3ZpZGVzIGRlZmF1bHRzIHN1aXRhYmxlIGZvciBBV1MgbGFtYmRhIG9yIHNpbWlsYXIgZW52aXJvbm1lbnRzOyByZWxheGVzIHRpbWVvdXRzLCBkaXNhYmxlcyBrZWVwLWFsaXZlc1xuICogdG8gYXZvaWQgaXNzdWVzIHdpdGggZXhlY3V0aW9uIGVudmlyb25tZW50cyBiZWluZyBmcm96ZW4gYW5kIHJlc3VtZWQsIGV0Yy5cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBMYW1iZGFcbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYSBleHRlbmRzIFRvcGljQ2xpZW50Q29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgbGF0ZXN0IHJlY29tbWVuZGVkIGNvbmZpZ3VyYXRpb24gZm9yIGEgbGFtYmRhIGVudmlyb25tZW50LiAgTk9URTogdGhpcyBjb25maWd1cmF0aW9uIG1heVxuICAgKiBjaGFuZ2UgaW4gZnV0dXJlIHJlbGVhc2VzIHRvIHRha2UgYWR2YW50YWdlIG9mIGltcHJvdmVtZW50cyB3ZSBpZGVudGlmeSBmb3IgZGVmYXVsdCBjb25maWd1cmF0aW9ucy5cbiAgICogQHBhcmFtIHtNb21lbnRvTG9nZ2VyRmFjdG9yeX0gW2xvZ2dlckZhY3Rvcnk9ZGVmYXVsdExvZ2dlckZhY3RvcnldXG4gICAqIEByZXR1cm5zIHtDYWNoZUNvbmZpZ3VyYXRpb259XG4gICAqL1xuICBzdGF0aWMgbGF0ZXN0KFxuICAgIGxvZ2dlckZhY3Rvcnk6IE1vbWVudG9Mb2dnZXJGYWN0b3J5ID0gZGVmYXVsdExvZ2dlckZhY3RvcnlcbiAgKTogVG9waWNDbGllbnRDb25maWd1cmF0aW9uIHtcbiAgICBjb25zdCBncnBjQ29uZmlnID0gbmV3IFN0YXRpY1RvcGljR3JwY0NvbmZpZ3VyYXRpb24oe1xuICAgICAgbnVtQ2xpZW50czogMSxcbiAgICB9KTtcbiAgICBjb25zdCB0cmFuc3BvcnRTdHJhdGVneSA9IG5ldyBTdGF0aWNUb3BpY1RyYW5zcG9ydFN0cmF0ZWd5KHtcbiAgICAgIGdycGNDb25maWd1cmF0aW9uOiBncnBjQ29uZmlnLFxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgTGFtYmRhKHtcbiAgICAgIGxvZ2dlckZhY3Rvcnk6IGxvZ2dlckZhY3RvcnksXG4gICAgICB0cmFuc3BvcnRTdHJhdGVneTogdHJhbnNwb3J0U3RyYXRlZ3ksXG4gICAgICB0aHJvd09uRXJyb3JzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxufVxuIl19




© 2015 - 2024 Weber Informatics LLC | Privacy Policy