@versatiledatakit/shared
Version:
Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.
86 lines • 7.63 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
import { CollectionsUtil } from '../../../utils';
export class PredicatesComparable {
/**
* ** Constructor.
*/
constructor(...predicates) {
this.value = predicates ?? [];
}
/**
* ** Factory method.
*/
static of(...predicates) {
return new PredicatesComparable(...predicates);
}
/**
* @inheritDoc
*/
compare(_comparable) {
console.warn('PredicatesComparable, unsupported comparison.');
return -1;
}
/**
* @inheritDoc
*/
isNil() {
return CollectionsUtil.isNil(this.value);
}
/**
* @inheritDoc
*/
notNil() {
return CollectionsUtil.isDefined(this.value);
}
/**
* @inheritDoc
*/
like(comparable) {
return this.value.some((predicate) => predicate.evaluate(comparable));
}
/**
* @inheritDoc
*/
equal(comparable) {
return this.value.every((predicate) => predicate.evaluate(comparable));
}
/**
* @inheritDoc
*/
notEqual(comparable) {
return !this.value.every((predicate) => predicate.evaluate(comparable));
}
/**
* @inheritDoc
*/
lessThan(_comparable) {
return PredicatesComparable._defaultUnsupported();
}
/**
* @inheritDoc
*/
lessThanInclusive(_comparable) {
return PredicatesComparable._defaultUnsupported();
}
/**
* @inheritDoc
*/
greaterThan(_comparable) {
return PredicatesComparable._defaultUnsupported();
}
/**
* @inheritDoc
*/
greaterThanInclusive(_comparable) {
return PredicatesComparable._defaultUnsupported();
}
// eslint-disable-next-line @typescript-eslint/member-ordering
static _defaultUnsupported() {
console.warn('PredicatesComparable, unsupported comparison.');
return false;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGljYXRlcy1jb21wYXJhYmxlLmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21tb24vcHJlZGljYXRlL2NvbXBhcmFibGUvcHJlZGljYXRlcy1jb21wYXJhYmxlLmltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpELE1BQU0sT0FBTyxvQkFBb0I7SUFNN0I7O09BRUc7SUFDSCxZQUFZLEdBQUcsVUFBYTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsSUFBSyxFQUFRLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQXVCO1FBQ2hDLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxXQUF1QjtRQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFFOUQsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDRCxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDRixPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksQ0FBQyxVQUFzQjtRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFVBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsVUFBc0I7UUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLFdBQXVCO1FBQzVCLE9BQU8sb0JBQW9CLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxXQUF1QjtRQUNyQyxPQUFPLG9CQUFvQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLFdBQXVCO1FBQy9CLE9BQU8sb0JBQW9CLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0IsQ0FBQyxXQUF1QjtRQUN4QyxPQUFPLG9CQUFvQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELDhEQUE4RDtJQUN0RCxNQUFNLENBQUMsbUJBQW1CO1FBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUU5RCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjMtMjAyNSBCcm9hZGNvbVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBDb2xsZWN0aW9uc1V0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBhcmFibGUsIFByZWRpY2F0ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgUHJlZGljYXRlc0NvbXBhcmFibGU8VCBleHRlbmRzIFByZWRpY2F0ZVtdID0gUHJlZGljYXRlW10+IGltcGxlbWVudHMgQ29tcGFyYWJsZTxUPiB7XG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IFQ7XG5cbiAgICAvKipcbiAgICAgKiAqKiBDb25zdHJ1Y3Rvci5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvciguLi5wcmVkaWNhdGVzOiBUKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBwcmVkaWNhdGVzID8/IChbXSBhcyBUKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAqKiBGYWN0b3J5IG1ldGhvZC5cbiAgICAgKi9cbiAgICBzdGF0aWMgb2YoLi4ucHJlZGljYXRlczogUHJlZGljYXRlW10pOiBQcmVkaWNhdGVzQ29tcGFyYWJsZSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJlZGljYXRlc0NvbXBhcmFibGUoLi4ucHJlZGljYXRlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBjb21wYXJlKF9jb21wYXJhYmxlOiBDb21wYXJhYmxlKTogbnVtYmVyIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdQcmVkaWNhdGVzQ29tcGFyYWJsZSwgdW5zdXBwb3J0ZWQgY29tcGFyaXNvbi4nKTtcblxuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBpc05pbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zVXRpbC5pc05pbCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIG5vdE5pbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zVXRpbC5pc0RlZmluZWQodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBsaWtlKGNvbXBhcmFibGU6IENvbXBhcmFibGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUuc29tZSgocHJlZGljYXRlKSA9PiBwcmVkaWNhdGUuZXZhbHVhdGUoY29tcGFyYWJsZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgZXF1YWwoY29tcGFyYWJsZTogQ29tcGFyYWJsZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5ldmVyeSgocHJlZGljYXRlKSA9PiBwcmVkaWNhdGUuZXZhbHVhdGUoY29tcGFyYWJsZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgbm90RXF1YWwoY29tcGFyYWJsZTogQ29tcGFyYWJsZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMudmFsdWUuZXZlcnkoKHByZWRpY2F0ZSkgPT4gcHJlZGljYXRlLmV2YWx1YXRlKGNvbXBhcmFibGUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIGxlc3NUaGFuKF9jb21wYXJhYmxlOiBDb21wYXJhYmxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBQcmVkaWNhdGVzQ29tcGFyYWJsZS5fZGVmYXVsdFVuc3VwcG9ydGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBsZXNzVGhhbkluY2x1c2l2ZShfY29tcGFyYWJsZTogQ29tcGFyYWJsZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gUHJlZGljYXRlc0NvbXBhcmFibGUuX2RlZmF1bHRVbnN1cHBvcnRlZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgZ3JlYXRlclRoYW4oX2NvbXBhcmFibGU6IENvbXBhcmFibGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFByZWRpY2F0ZXNDb21wYXJhYmxlLl9kZWZhdWx0VW5zdXBwb3J0ZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIGdyZWF0ZXJUaGFuSW5jbHVzaXZlKF9jb21wYXJhYmxlOiBDb21wYXJhYmxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBQcmVkaWNhdGVzQ29tcGFyYWJsZS5fZGVmYXVsdFVuc3VwcG9ydGVkKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgICBwcml2YXRlIHN0YXRpYyBfZGVmYXVsdFVuc3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ByZWRpY2F0ZXNDb21wYXJhYmxlLCB1bnN1cHBvcnRlZCBjb21wYXJpc29uLicpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=