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

package.dist.src.internal.grpc.grpc-channel-options.js Maven / Gradle / Ivy

The newest version!
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.grpcChannelOptionsFromGrpcConfig = void 0;
// The default value for max_send_message_length is 4mb.  We need to increase this to 5mb in order to
// support cases where users have requested a limit increase up to our maximum item size of 5mb.
const DEFAULT_MAX_REQUEST_SIZE = 5243000;
function grpcChannelOptionsFromGrpcConfig(grpcConfig) {
    var _a, _b;
    return {
        // default value for max session memory is 10mb.  Under high load, it is easy to exceed this,
        // after which point all requests will fail with a client-side RESOURCE_EXHAUSTED exception.
        'grpc-node.max_session_memory': grpcConfig.getMaxSessionMemoryMb(),
        // This flag controls whether channels use a shared global pool of subchannels, or whether
        // each channel gets its own subchannel pool.  The default value is 0, meaning a single global
        // pool.  Setting it to 1 provides significant performance improvements when we instantiate more
        // than one grpc client.
        'grpc.use_local_subchannel_pool': 1,
        // The default value for max_send_message_length is 4mb.  We need to increase this to 5mb in order to
        // support cases where users have requested a limit increase up to our maximum item size of 5mb.
        'grpc.max_send_message_length': (_a = grpcConfig.getMaxSendMessageLength()) !== null && _a !== void 0 ? _a : DEFAULT_MAX_REQUEST_SIZE,
        'grpc.max_receive_message_length': (_b = grpcConfig.getMaxReceiveMessageLength()) !== null && _b !== void 0 ? _b : DEFAULT_MAX_REQUEST_SIZE,
        // NOTE: keep-alives are very important for long-lived server environments where there may be periods of time
        // when the connection is idle. However, they are very problematic for lambda environments where the lambda
        // runtime is continuously frozen and unfrozen, because the lambda may be frozen before the "ACK" is received
        // from the server. This can cause the keep-alive to timeout even though the connection is completely healthy.
        // Therefore, keep-alives should be disabled in lambda and similar environments.
        'grpc.keepalive_permit_without_calls': grpcConfig.getKeepAlivePermitWithoutCalls(),
        'grpc.keepalive_time_ms': grpcConfig.getKeepAliveTimeMS(),
        'grpc.keepalive_timeout_ms': grpcConfig.getKeepAliveTimeoutMS(),
    };
}
exports.grpcChannelOptionsFromGrpcConfig = grpcChannelOptionsFromGrpcConfig;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JwYy1jaGFubmVsLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW50ZXJuYWwvZ3JwYy9ncnBjLWNoYW5uZWwtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxR0FBcUc7QUFDckcsZ0dBQWdHO0FBQ2hHLE1BQU0sd0JBQXdCLEdBQUcsT0FBUyxDQUFDO0FBRTNDLFNBQWdCLGdDQUFnQyxDQUM5QyxVQUE2Qjs7SUFFN0IsT0FBTztRQUNMLDZGQUE2RjtRQUM3Riw0RkFBNEY7UUFDNUYsOEJBQThCLEVBQUUsVUFBVSxDQUFDLHFCQUFxQixFQUFFO1FBRWxFLDBGQUEwRjtRQUMxRiw4RkFBOEY7UUFDOUYsZ0dBQWdHO1FBQ2hHLHdCQUF3QjtRQUN4QixnQ0FBZ0MsRUFBRSxDQUFDO1FBRW5DLHFHQUFxRztRQUNyRyxnR0FBZ0c7UUFDaEcsOEJBQThCLEVBQzVCLE1BQUEsVUFBVSxDQUFDLHVCQUF1QixFQUFFLG1DQUFJLHdCQUF3QjtRQUNsRSxpQ0FBaUMsRUFDL0IsTUFBQSxVQUFVLENBQUMsMEJBQTBCLEVBQUUsbUNBQUksd0JBQXdCO1FBRXJFLDZHQUE2RztRQUM3RywyR0FBMkc7UUFDM0csNkdBQTZHO1FBQzdHLDhHQUE4RztRQUM5RyxnRkFBZ0Y7UUFDaEYscUNBQXFDLEVBQ25DLFVBQVUsQ0FBQyw4QkFBOEIsRUFBRTtRQUM3Qyx3QkFBd0IsRUFBRSxVQUFVLENBQUMsa0JBQWtCLEVBQUU7UUFDekQsMkJBQTJCLEVBQUUsVUFBVSxDQUFDLHFCQUFxQixFQUFFO0tBQ2hFLENBQUM7QUFDSixDQUFDO0FBL0JELDRFQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JwY0NvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uJztcbmltcG9ydCB7Q2hhbm5lbE9wdGlvbnN9IGZyb20gJ0BncnBjL2dycGMtanMnO1xuXG4vLyBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgbWF4X3NlbmRfbWVzc2FnZV9sZW5ndGggaXMgNG1iLiAgV2UgbmVlZCB0byBpbmNyZWFzZSB0aGlzIHRvIDVtYiBpbiBvcmRlciB0b1xuLy8gc3VwcG9ydCBjYXNlcyB3aGVyZSB1c2VycyBoYXZlIHJlcXVlc3RlZCBhIGxpbWl0IGluY3JlYXNlIHVwIHRvIG91ciBtYXhpbXVtIGl0ZW0gc2l6ZSBvZiA1bWIuXG5jb25zdCBERUZBVUxUX01BWF9SRVFVRVNUX1NJWkUgPSA1XzI0M18wMDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBncnBjQ2hhbm5lbE9wdGlvbnNGcm9tR3JwY0NvbmZpZyhcbiAgZ3JwY0NvbmZpZzogR3JwY0NvbmZpZ3VyYXRpb25cbik6IENoYW5uZWxPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBkZWZhdWx0IHZhbHVlIGZvciBtYXggc2Vzc2lvbiBtZW1vcnkgaXMgMTBtYi4gIFVuZGVyIGhpZ2ggbG9hZCwgaXQgaXMgZWFzeSB0byBleGNlZWQgdGhpcyxcbiAgICAvLyBhZnRlciB3aGljaCBwb2ludCBhbGwgcmVxdWVzdHMgd2lsbCBmYWlsIHdpdGggYSBjbGllbnQtc2lkZSBSRVNPVVJDRV9FWEhBVVNURUQgZXhjZXB0aW9uLlxuICAgICdncnBjLW5vZGUubWF4X3Nlc3Npb25fbWVtb3J5JzogZ3JwY0NvbmZpZy5nZXRNYXhTZXNzaW9uTWVtb3J5TWIoKSxcblxuICAgIC8vIFRoaXMgZmxhZyBjb250cm9scyB3aGV0aGVyIGNoYW5uZWxzIHVzZSBhIHNoYXJlZCBnbG9iYWwgcG9vbCBvZiBzdWJjaGFubmVscywgb3Igd2hldGhlclxuICAgIC8vIGVhY2ggY2hhbm5lbCBnZXRzIGl0cyBvd24gc3ViY2hhbm5lbCBwb29sLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCwgbWVhbmluZyBhIHNpbmdsZSBnbG9iYWxcbiAgICAvLyBwb29sLiAgU2V0dGluZyBpdCB0byAxIHByb3ZpZGVzIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyB3aGVuIHdlIGluc3RhbnRpYXRlIG1vcmVcbiAgICAvLyB0aGFuIG9uZSBncnBjIGNsaWVudC5cbiAgICAnZ3JwYy51c2VfbG9jYWxfc3ViY2hhbm5lbF9wb29sJzogMSxcblxuICAgIC8vIFRoZSBkZWZhdWx0IHZhbHVlIGZvciBtYXhfc2VuZF9tZXNzYWdlX2xlbmd0aCBpcyA0bWIuICBXZSBuZWVkIHRvIGluY3JlYXNlIHRoaXMgdG8gNW1iIGluIG9yZGVyIHRvXG4gICAgLy8gc3VwcG9ydCBjYXNlcyB3aGVyZSB1c2VycyBoYXZlIHJlcXVlc3RlZCBhIGxpbWl0IGluY3JlYXNlIHVwIHRvIG91ciBtYXhpbXVtIGl0ZW0gc2l6ZSBvZiA1bWIuXG4gICAgJ2dycGMubWF4X3NlbmRfbWVzc2FnZV9sZW5ndGgnOlxuICAgICAgZ3JwY0NvbmZpZy5nZXRNYXhTZW5kTWVzc2FnZUxlbmd0aCgpID8/IERFRkFVTFRfTUFYX1JFUVVFU1RfU0laRSxcbiAgICAnZ3JwYy5tYXhfcmVjZWl2ZV9tZXNzYWdlX2xlbmd0aCc6XG4gICAgICBncnBjQ29uZmlnLmdldE1heFJlY2VpdmVNZXNzYWdlTGVuZ3RoKCkgPz8gREVGQVVMVF9NQVhfUkVRVUVTVF9TSVpFLFxuXG4gICAgLy8gTk9URToga2VlcC1hbGl2ZXMgYXJlIHZlcnkgaW1wb3J0YW50IGZvciBsb25nLWxpdmVkIHNlcnZlciBlbnZpcm9ubWVudHMgd2hlcmUgdGhlcmUgbWF5IGJlIHBlcmlvZHMgb2YgdGltZVxuICAgIC8vIHdoZW4gdGhlIGNvbm5lY3Rpb24gaXMgaWRsZS4gSG93ZXZlciwgdGhleSBhcmUgdmVyeSBwcm9ibGVtYXRpYyBmb3IgbGFtYmRhIGVudmlyb25tZW50cyB3aGVyZSB0aGUgbGFtYmRhXG4gICAgLy8gcnVudGltZSBpcyBjb250aW51b3VzbHkgZnJvemVuIGFuZCB1bmZyb3plbiwgYmVjYXVzZSB0aGUgbGFtYmRhIG1heSBiZSBmcm96ZW4gYmVmb3JlIHRoZSBcIkFDS1wiIGlzIHJlY2VpdmVkXG4gICAgLy8gZnJvbSB0aGUgc2VydmVyLiBUaGlzIGNhbiBjYXVzZSB0aGUga2VlcC1hbGl2ZSB0byB0aW1lb3V0IGV2ZW4gdGhvdWdoIHRoZSBjb25uZWN0aW9uIGlzIGNvbXBsZXRlbHkgaGVhbHRoeS5cbiAgICAvLyBUaGVyZWZvcmUsIGtlZXAtYWxpdmVzIHNob3VsZCBiZSBkaXNhYmxlZCBpbiBsYW1iZGEgYW5kIHNpbWlsYXIgZW52aXJvbm1lbnRzLlxuICAgICdncnBjLmtlZXBhbGl2ZV9wZXJtaXRfd2l0aG91dF9jYWxscyc6XG4gICAgICBncnBjQ29uZmlnLmdldEtlZXBBbGl2ZVBlcm1pdFdpdGhvdXRDYWxscygpLFxuICAgICdncnBjLmtlZXBhbGl2ZV90aW1lX21zJzogZ3JwY0NvbmZpZy5nZXRLZWVwQWxpdmVUaW1lTVMoKSxcbiAgICAnZ3JwYy5rZWVwYWxpdmVfdGltZW91dF9tcyc6IGdycGNDb25maWcuZ2V0S2VlcEFsaXZlVGltZW91dE1TKCksXG4gIH07XG59XG4iXX0=




© 2015 - 2025 Weber Informatics LLC | Privacy Policy