@edgeguideab/expect
Version:
Check for user input in a consistent way and generate error messages for missings
38 lines (37 loc) • 1.66 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isEqualTo = void 0;
var getDeep_1 = require("./getDeep");
var isDateValue_1 = __importDefault(require("./isDateValue"));
var index_1 = require("./index");
function isEqualTo(_a) {
var type = _a.type, value = _a.value, parameter = _a.parameter, equalTo = _a.equalTo, input = _a.input, schema = _a.schema, _b = _a.visitedParams, visitedParams = _b === void 0 ? [] : _b, validate = _a.validate;
var initialValue = (0, getDeep_1.getDeep)(equalTo, input);
var options = (0, getDeep_1.getDeepOptions)(equalTo, schema);
var validated = !options || visitedParams.includes((0, index_1.formatParameter)(parameter))
? { parsed: initialValue }
: validate({
type: options.type || options,
parameter: equalTo,
value: initialValue,
options: options,
input: input,
schema: schema,
visitedParams: visitedParams.concat((0, index_1.formatParameter)(parameter)),
});
if ("parsed" in validated) {
if (type !== "date" ||
!(0, isDateValue_1.default)(value) ||
!(0, isDateValue_1.default)(validated.parsed) ||
value === "" ||
validated.parsed === "") {
return Object.is(value, validated.parsed);
}
return Object.is(new Date(value).getTime(), new Date(validated.parsed).getTime());
}
return value === undefined;
}
exports.isEqualTo = isEqualTo;