@ivandt/json-rules
Version:
Rule parsing engine for JSON rules
31 lines (30 loc) • 1.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateURL = validateURL;
const isURL_1 = __importDefault(require("validator/lib/isURL"));
/**
* Validates URLs with configurable options
*/
function validateURL(value, config = null) {
// Must be a string
if (typeof value !== "string") {
return false;
}
// Use default config if none provided
const validationConfig = config || {};
// Convert our config to validator.js options
const options = {
protocols: validationConfig.protocols || ["http", "https", "ftp"],
require_protocol: validationConfig.requireProtocol !== false, // Default true
require_tld: validationConfig.requireTld !== false, // Default true, but allow false for localhost
allow_underscores: validationConfig.allowUnderscores || false,
allow_trailing_dot: validationConfig.allowTrailingDot || false,
allow_numeric_tld: validationConfig.allowNumericTld || false,
allow_wildcard: validationConfig.allowWildcard || false,
ignore_max_length: validationConfig.ignoreMaxLength || false,
};
return (0, isURL_1.default)(value, options);
}