@dolittle/sdk.artifacts
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
51 lines • 3.52 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.isArtifact = exports.Artifact = void 0;
const rudiments_1 = require("@dolittle/rudiments");
const Generation_1 = require("./Generation");
/**
* Represents the base representation of an Artifact.
* @template TId The artifact identifier type.
*/
class Artifact {
/**
* Initializes a new instance of {@link EventType}.
* @param {TId} id - The unique identifier of the artifact.
* @param {Generation} [generation] - Optional generation - will default to {@link generation.first}.
*/
constructor(id, generation = Generation_1.Generation.first) {
this.id = id;
this.generation = generation;
}
/** @inheritdoc */
equals(other) {
if ((0, exports.isArtifact)(other)) {
return this.id.value.equals(other.id.value) && this.generation.equals(other.generation);
}
return false;
}
}
exports.Artifact = Artifact;
/**
* Checks whether or not an object is an instance of {@link Artifact}.
* @param {any} object - The object to check.
* @returns {boolean} True if the object is an {@link Artifact}, false if not.
*/
const isArtifact = (object) => {
if (typeof object !== 'object' || object === null)
return false;
const { id, generation, equals, toString } = object;
if (typeof id !== 'object' || id === null || !(0, rudiments_1.isGuid)(id.value))
return false;
if (!(0, Generation_1.isGeneration)(generation))
return false;
if (typeof equals !== 'function' || equals.length !== 1)
return false;
if (typeof toString !== 'function' || toString.length !== 0)
return false;
return true;
};
exports.isArtifact = isArtifact;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlcyI6WyJBcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHFHQUFxRzs7O0FBRXJHLG1EQUErRDtBQUUvRCw2Q0FBd0Q7QUFPeEQ7OztHQUdHO0FBQ0gsTUFBc0IsUUFBUTtJQUUxQjs7OztPQUlHO0lBQ0gsWUFBcUIsRUFBTyxFQUFXLGFBQXlCLHVCQUFVLENBQUMsS0FBSztRQUEzRCxPQUFFLEdBQUYsRUFBRSxDQUFLO1FBQVcsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7SUFDaEYsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNLENBQUMsS0FBVTtRQUNiLElBQUksSUFBQSxrQkFBVSxFQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUlKO0FBcEJELDRCQW9CQztBQUVEOzs7O0dBSUc7QUFDSSxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQVcsRUFBc0MsRUFBRTtJQUMxRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssSUFBSTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRWhFLE1BQU0sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDcEQsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUEsa0JBQU0sRUFBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDN0UsSUFBSSxDQUFDLElBQUEseUJBQVksRUFBQyxVQUFVLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM1QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUN0RSxJQUFJLE9BQU8sUUFBUSxLQUFLLFVBQVUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUUxRSxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFWVyxRQUFBLFVBQVUsY0FVckIifQ==