@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
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.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