UNPKG

aws-cdk

Version:

AWS CDK CLI, the command line tool for CDK apps

29 lines 3.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Funnel = void 0; const toolkit_lib_1 = require("@aws-cdk/toolkit-lib"); /** * A funnel is a combination of one or more sinks. * The sink functions are executed in parallel, and a maximum of 5 * sinks are supported per funnel. */ class Funnel { constructor(props) { if (props.sinks.length > 5) { throw new toolkit_lib_1.ToolkitError('MaxSinksExceeded', `Funnel class supports a maximum of 5 parallel sinks, got ${props.sinks.length} sinks.`); } this.sinks = props.sinks; } async emit(event) { // Funnel class enforces a maximum of 5 parallel sinks // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism await Promise.all(this.sinks.map(sink => sink.emit(event))); } async flush() { // Funnel class enforces a maximum of 5 parallel sinks // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism await Promise.all(this.sinks.map(sink => sink.flush())); } } exports.Funnel = Funnel; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZnVubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFvRDtBQVFwRDs7OztHQUlHO0FBQ0gsTUFBYSxNQUFNO0lBR2pCLFlBQVksS0FBa0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksMEJBQVksQ0FBQyxrQkFBa0IsRUFBRSw0REFBNEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ3RJLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBc0I7UUFDdEMsc0RBQXNEO1FBQ3RELHdFQUF3RTtRQUN4RSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUs7UUFDaEIsc0RBQXNEO1FBQ3RELHdFQUF3RTtRQUN4RSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDRjtBQXRCRCx3QkFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgdHlwZSB7IFRlbGVtZXRyeVNjaGVtYSB9IGZyb20gJy4uL3NjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IElUZWxlbWV0cnlTaW5rIH0gZnJvbSAnLi9zaW5rLWludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVubmVsUHJvcHMge1xuICByZWFkb25seSBzaW5rczogSVRlbGVtZXRyeVNpbmtbXTtcbn1cblxuLyoqXG4gKiBBIGZ1bm5lbCBpcyBhIGNvbWJpbmF0aW9uIG9mIG9uZSBvciBtb3JlIHNpbmtzLlxuICogVGhlIHNpbmsgZnVuY3Rpb25zIGFyZSBleGVjdXRlZCBpbiBwYXJhbGxlbCwgYW5kIGEgbWF4aW11bSBvZiA1XG4gKiBzaW5rcyBhcmUgc3VwcG9ydGVkIHBlciBmdW5uZWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBGdW5uZWwge1xuICBwcml2YXRlIHJlYWRvbmx5IHNpbmtzOiBJVGVsZW1ldHJ5U2lua1tdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBGdW5uZWxQcm9wcykge1xuICAgIGlmIChwcm9wcy5zaW5rcy5sZW5ndGggPiA1KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdNYXhTaW5rc0V4Y2VlZGVkJywgYEZ1bm5lbCBjbGFzcyBzdXBwb3J0cyBhIG1heGltdW0gb2YgNSBwYXJhbGxlbCBzaW5rcywgZ290ICR7cHJvcHMuc2lua3MubGVuZ3RofSBzaW5rcy5gKTtcbiAgICB9XG5cbiAgICB0aGlzLnNpbmtzID0gcHJvcHMuc2lua3M7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZW1pdChldmVudDogVGVsZW1ldHJ5U2NoZW1hKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRnVubmVsIGNsYXNzIGVuZm9yY2VzIGEgbWF4aW11bSBvZiA1IHBhcmFsbGVsIHNpbmtzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5zaW5rcy5tYXAoc2luayA9PiBzaW5rLmVtaXQoZXZlbnQpKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRnVubmVsIGNsYXNzIGVuZm9yY2VzIGEgbWF4aW11bSBvZiA1IHBhcmFsbGVsIHNpbmtzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5zaW5rcy5tYXAoc2luayA9PiBzaW5rLmZsdXNoKCkpKTtcbiAgfVxufVxuIl19