@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
JavaScript
;
// 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