UNPKG

@ivandt/json-rules

Version:

Rule parsing engine for JSON rules

31 lines (30 loc) 1.33 kB
"use strict"; 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); }