@sekwiatkowski/js-fp
Version:
A pragmatic functional programming library for JavaScript/TypeScript
25 lines • 1.56 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const __1 = require("..");
const Equality_1 = require("../equivalence/Equality");
const sameLength = __1.NumberEquality.adapt((array) => array.length);
function createSameItemsEquality(itemEquality = Equality_1.strictEquality) {
return __1.equivalence((xs, ys) => xs.every((x, i) => itemEquality.test(x, ys[i])));
}
function createArrayEquality(itemEquality = Equality_1.strictEquality) {
return __1.neitherIsUndefinedOrNull.and(sameLength.and(createSameItemsEquality(itemEquality)));
}
exports.createArrayEquality = createArrayEquality;
exports.StringArrayEquality = createArrayEquality(__1.StringEquality);
exports.NumberArrayEquality = createArrayEquality(__1.NumberEquality);
exports.BooleanArrayEquality = createArrayEquality(__1.BooleanEquality);
exports.DateArrayEquality = createArrayEquality(__1.DateEquality);
function createNullableArrayEquality(itemEquality = Equality_1.strictEquality) {
return __1.bothAreNull.or(createArrayEquality(itemEquality));
}
exports.createNullableArrayEquality = createNullableArrayEquality;
exports.NullableStringArrayEquality = createNullableArrayEquality(__1.NullableStringEquality);
exports.NullableNumberArrayEquality = createNullableArrayEquality(__1.NullableNumberEquality);
exports.NullableBooleanArrayEquality = createNullableArrayEquality(__1.NullableBooleanEquality);
exports.NullableDateArrayEquality = createNullableArrayEquality(__1.NullableDateEquality);
//# sourceMappingURL=ArrayEquality.js.map
;