UNPKG

@dolittle/sdk.artifacts

Version:

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

26 lines 1.98 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.createIsArtifact = void 0; const Artifact_1 = require("./Artifact"); /** * Creates a type predicate for the provided {@link Artifact} type. * @param {Constructor} type - The type of the artifact. * @param {(any) => boolean} idTypePredicate - A predicate to use to check the type of the artifact id. * @param {(any) => boolean} [extraPredicate] - An optional predicate to use to perform additional checks on the object. * @returns {(any) => boolean} A type predicate that checks if an object is an instance of the {@link Artifact} type. */ const createIsArtifact = (type, idTypePredicate, extraPredicate) => { return (object) => { if (!(0, Artifact_1.isArtifact)(object)) return false; if (!idTypePredicate(object.id)) return false; if (extraPredicate !== undefined && !extraPredicate(object)) return false; return true; }; }; exports.createIsArtifact = createIsArtifact; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlSXNBcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzIjpbImNyZWF0ZUlzQXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxxR0FBcUc7OztBQUdyRyx5Q0FBa0U7QUFFbEU7Ozs7OztHQU1HO0FBQ0ksTUFBTSxnQkFBZ0IsR0FBRyxDQUM1QixJQUFvQixFQUNwQixlQUFtRCxFQUNuRCxjQUF1QyxFQUNYLEVBQUU7SUFDOUIsT0FBTyxDQUFDLE1BQU0sRUFBZSxFQUFFO1FBQzNCLElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDOUMsSUFBSSxjQUFjLEtBQUssU0FBUyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQVcsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQztBQVhXLFFBQUEsZ0JBQWdCLG9CQVczQiJ9