UNPKG

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