UNPKG

@blinkk/selective-edit

Version:
54 lines 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RequireRule = void 0; const validationRules_1 = require("../validationRules"); const dataType_1 = require("../../utility/dataType"); class RequireRule extends validationRules_1.Rule { constructor(config) { super(config); this.defaultMessage = 'Value is required. Cannot be empty.'; this.config = config; } /** * Required rule makes the field required. */ get isRequired() { return true; } validate(value) { if (!value) { return this.message; } // Handle required array values. if (dataType_1.DataType.isArray(value)) { if (value.length < 1) { return this.message; } } // Require that it be more than just whitespace. try { value = value.trim(); if (!value.length) { return this.message; } } catch (e) { if (e instanceof TypeError) { // Value type doesn't have a trim or length. } else { throw e; } } // Some fields a blank is not an empty value. Allow for setting // alternative values that are also considered as being empty. for (const alternativeEmpty of this.config.alternativeEmpties || []) { if (value === alternativeEmpty) { return this.message; } } return null; } } exports.RequireRule = RequireRule; //# sourceMappingURL=require.js.map