@versatiledatakit/shared
Version:
Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.
89 lines • 7.16 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
import { CollectionsUtil } from '../../../utils';
/**
* ** Comparable.
*/
export class ComparableImpl {
/**
* ** Constructor.
*/
constructor(value) {
this.value = value;
}
/**
* ** Factory method.
*/
static of(value) {
return new ComparableImpl(value);
}
/**
* @inheritDoc
*/
compare(comparable) {
if (comparable instanceof ComparableImpl) {
const evaluateSecondStatement = () => (this.value > comparable.value ? 1 : -1);
return this.value === comparable.value ? 0 : evaluateSecondStatement();
}
else {
return -1;
}
}
/**
* @inheritDoc
*/
isNil() {
return CollectionsUtil.isNil(this.value);
}
/**
* @inheritDoc
*/
notNil() {
return CollectionsUtil.isDefined(this.value);
}
/**
* @inheritDoc
*/
like(comparable) {
return this.compare(comparable) === 0;
}
/**
* @inheritDoc
*/
equal(comparable) {
return this.compare(comparable) === 0;
}
/**
* @inheritDoc
*/
notEqual(comparable) {
return this.compare(comparable) !== 0;
}
/**
* @inheritDoc
*/
lessThan(comparable) {
return this.compare(comparable) < 0;
}
/**
* @inheritDoc
*/
lessThanInclusive(comparable) {
return this.compare(comparable) <= 0;
}
/**
* @inheritDoc
*/
greaterThan(comparable) {
return this.compare(comparable) > 0;
}
/**
* @inheritDoc
*/
greaterThanInclusive(comparable) {
return this.compare(comparable) >= 0;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYWJsZS5pbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tbW9uL3ByZWRpY2F0ZS9jb21wYXJhYmxlL2NvbXBhcmFibGUuaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFNSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQU12Qjs7T0FFRztJQUNILFlBQVksS0FBUTtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQVU7UUFDaEIsT0FBTyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsVUFBc0I7UUFDMUIsSUFBSSxVQUFVLFlBQVksY0FBYyxFQUFFO1lBQ3RDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUvRSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQzFFO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2I7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0YsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQUMsVUFBc0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsVUFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsVUFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsVUFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxVQUFzQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBQyxVQUFzQjtRQUM5QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLFVBQXNCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIzLTIwMjUgQnJvYWRjb21cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5pbXBvcnQgeyBDb21wYXJhYmxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IENvbGxlY3Rpb25zVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcblxuLyoqXG4gKiAqKiBDb21wYXJhYmxlLlxuICovXG5leHBvcnQgY2xhc3MgQ29tcGFyYWJsZUltcGw8VCA9IHVua25vd24+IGltcGxlbWVudHMgQ29tcGFyYWJsZTxUPiB7XG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IFQ7XG5cbiAgICAvKipcbiAgICAgKiAqKiBDb25zdHJ1Y3Rvci5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogKiogRmFjdG9yeSBtZXRob2QuXG4gICAgICovXG4gICAgc3RhdGljIG9mKHZhbHVlOiBhbnkpOiBDb21wYXJhYmxlSW1wbCB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tcGFyYWJsZUltcGwodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgY29tcGFyZShjb21wYXJhYmxlOiBDb21wYXJhYmxlKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKGNvbXBhcmFibGUgaW5zdGFuY2VvZiBDb21wYXJhYmxlSW1wbCkge1xuICAgICAgICAgICAgY29uc3QgZXZhbHVhdGVTZWNvbmRTdGF0ZW1lbnQgPSAoKSA9PiAodGhpcy52YWx1ZSA+IGNvbXBhcmFibGUudmFsdWUgPyAxIDogLTEpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gY29tcGFyYWJsZS52YWx1ZSA/IDAgOiBldmFsdWF0ZVNlY29uZFN0YXRlbWVudCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBpc05pbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zVXRpbC5pc05pbCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIG5vdE5pbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zVXRpbC5pc0RlZmluZWQodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBsaWtlKGNvbXBhcmFibGU6IENvbXBhcmFibGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShjb21wYXJhYmxlKSA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIGVxdWFsKGNvbXBhcmFibGU6IENvbXBhcmFibGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShjb21wYXJhYmxlKSA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIG5vdEVxdWFsKGNvbXBhcmFibGU6IENvbXBhcmFibGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShjb21wYXJhYmxlKSAhPT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIGxlc3NUaGFuKGNvbXBhcmFibGU6IENvbXBhcmFibGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShjb21wYXJhYmxlKSA8IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBsZXNzVGhhbkluY2x1c2l2ZShjb21wYXJhYmxlOiBDb21wYXJhYmxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoY29tcGFyYWJsZSkgPD0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIGdyZWF0ZXJUaGFuKGNvbXBhcmFibGU6IENvbXBhcmFibGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShjb21wYXJhYmxlKSA+IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBncmVhdGVyVGhhbkluY2x1c2l2ZShjb21wYXJhYmxlOiBDb21wYXJhYmxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoY29tcGFyYWJsZSkgPj0gMDtcbiAgICB9XG59XG4iXX0=