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