UNPKG

@dolittle/sdk.projections

Version:

Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.

56 lines 3.19 kB
"use strict"; // Copyright (c) Dolittle. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.KeySelectorBuilder = void 0; const EventOccurredKeySelector_1 = require("../EventOccurredKeySelector"); const EventPropertyKeySelector_1 = require("../EventPropertyKeySelector"); const EventSourceIdKeySelector_1 = require("../EventSourceIdKeySelector"); const PartitionIdKeySelector_1 = require("../PartitionIdKeySelector"); const StaticKeySelector_1 = require("../StaticKeySelector"); /** * Represents a builder for building {@link KeySelector}. * @template T The type of the projection read model. */ class KeySelectorBuilder { /** * Select projection key from the event source id. * @returns {EventSourceIdKeySelector} A key selector. */ keyFromEventSource() { return new EventSourceIdKeySelector_1.EventSourceIdKeySelector(); } /** * Select projection key from the event stream partition id. * @returns {PartitionIdKeySelector} A key selector. */ keyFromPartitionId() { return new PartitionIdKeySelector_1.PartitionIdKeySelector(); } /** * Select projection key from a property on the event. * @param {keyof T} property - The property to use as key. * @returns {EventPropertyKeySelector} A key selector. */ keyFromProperty(property) { return new EventPropertyKeySelector_1.EventPropertyKeySelector(property); } /** * Sets a static key as projection key. * @param {string | Key} key - The property to use as key. * @returns {StaticKeySelector} A key selector. */ staticKey(key) { return new StaticKeySelector_1.StaticKeySelector(key); } /** * Select projection key from the given format of when an event occurred. * @param {string | OccurredFormat} occurredFormat - The occurred format. * @returns {StaticKeySelector} A key selector. */ keyFromEventOccurred(occurredFormat) { return new EventOccurredKeySelector_1.EventOccurredKeySelector(occurredFormat); } } exports.KeySelectorBuilder = KeySelectorBuilder; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5U2VsZWN0b3JCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXMiOlsiQnVpbGRlcnMvS2V5U2VsZWN0b3JCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0MscUdBQXFHOzs7QUFFckcsMEVBQXVFO0FBQ3ZFLDBFQUF1RTtBQUN2RSwwRUFBdUU7QUFHdkUsc0VBQW1FO0FBQ25FLDREQUF5RDtBQUV6RDs7O0dBR0c7QUFDSCxNQUFhLGtCQUFrQjtJQUMzQjs7O09BR0c7SUFDSCxrQkFBa0I7UUFDZCxPQUFPLElBQUksbURBQXdCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLCtDQUFzQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsUUFBaUI7UUFDN0IsT0FBTyxJQUFJLG1EQUF3QixDQUFDLFFBQWtCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxHQUFpQjtRQUN2QixPQUFPLElBQUkscUNBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxjQUF1QztRQUN4RCxPQUFPLElBQUksbURBQXdCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUVKO0FBNUNELGdEQTRDQyJ9