UNPKG

@dolittle/sdk.projections

Version:

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

56 lines 3.92 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.isScopedProjectionId = exports.ScopedProjectionId = void 0; const sdk_events_1 = require("@dolittle/sdk.events"); const ProjectionId_1 = require("../ProjectionId"); /** * Represents the unique identifier of a Projection in a Scope. */ class ScopedProjectionId { /** * Initialises a new instance of the {@link ScopedProjectionId} class. * @param {ProjectionId} projectionId - The projection id. * @param {ScopeId} scopeId - The scope id. */ constructor(projectionId, scopeId) { this.projectionId = projectionId; this.scopeId = scopeId; } /** @inheritdoc */ equals(other) { if (!(0, exports.isScopedProjectionId)(other)) return false; return this.projectionId.equals(other.projectionId) && this.scopeId.equals(other.scopeId); } /** * Creates a {@link ScopedProjectionId} from a projection id and scope id.. * @param {string | Guid | ProjectionId} projectionId - The projection id. * @param {string | Guid | ScopeId} scopeId - The scope id. * @returns {ScopedProjectionId} The created scoped projection id. */ static from(projectionId, scopeId) { return new ScopedProjectionId(ProjectionId_1.ProjectionId.from(projectionId), sdk_events_1.ScopeId.from(scopeId)); } } exports.ScopedProjectionId = ScopedProjectionId; /** * Checks whether or not an object is an instance of {@link ScopedProjectionId}. * @param {any} object - The object to check. * @returns {boolean} True if the object is an {@link ScopedProjectionId}, false if not. */ const isScopedProjectionId = (object) => { if (typeof object !== 'object' || object === null) return false; const { projectionId, scopeId, equals } = object; if (!(0, ProjectionId_1.isProjectionId)(projectionId)) return false; if (!(0, sdk_events_1.isScopeId)(scopeId)) return false; if (typeof equals !== 'function' || equals.length !== 1) return false; return true; }; exports.isScopedProjectionId = isScopedProjectionId; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NvcGVkUHJvamVjdGlvbklkLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXMiOlsiU3RvcmUvU2NvcGVkUHJvamVjdGlvbklkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0MscUdBQXFHOzs7QUFJckcscURBQTBEO0FBRTFELGtEQUErRDtBQUUvRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBQzNCOzs7O09BSUc7SUFDSCxZQUNhLFlBQTBCLEVBQzFCLE9BQWdCO1FBRGhCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQVM7SUFDMUIsQ0FBQztJQUVKLGtCQUFrQjtJQUNsQixNQUFNLENBQUMsS0FBVTtRQUNiLElBQUksQ0FBQyxJQUFBLDRCQUFvQixFQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQTBDLEVBQUUsT0FBZ0M7UUFDcEYsT0FBTyxJQUFJLGtCQUFrQixDQUN6QiwyQkFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDL0Isb0JBQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0o7QUE1QkQsZ0RBNEJDO0FBRUQ7Ozs7R0FJRztBQUNJLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFXLEVBQWdDLEVBQUU7SUFDOUUsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUVoRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDakQsSUFBSSxDQUFDLElBQUEsNkJBQWMsRUFBQyxZQUFZLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNoRCxJQUFJLENBQUMsSUFBQSxzQkFBUyxFQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3RDLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXRFLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQVRXLFFBQUEsb0JBQW9CLHdCQVMvQiJ9