@edgeguideab/expect
Version:
Check for user input in a consistent way and generate error messages for missings
61 lines (60 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.containsUnsafe = exports.sanitize = exports.isNull = exports.parseFunctionWrapper = exports.parseType = exports.getDeepOptions = exports.getDeep = exports.isEqualTo = exports.formatParameter = void 0;
var getDeep_1 = require("./getDeep");
Object.defineProperty(exports, "getDeep", { enumerable: true, get: function () { return getDeep_1.getDeep; } });
Object.defineProperty(exports, "getDeepOptions", { enumerable: true, get: function () { return getDeep_1.getDeepOptions; } });
var isEqualTo_1 = require("./isEqualTo");
Object.defineProperty(exports, "isEqualTo", { enumerable: true, get: function () { return isEqualTo_1.isEqualTo; } });
var parse_1 = require("./parse");
Object.defineProperty(exports, "parseFunctionWrapper", { enumerable: true, get: function () { return parse_1.parseFunctionWrapper; } });
Object.defineProperty(exports, "parseType", { enumerable: true, get: function () { return parse_1.parseType; } });
function formatParameter(parameter) {
return Array.isArray(parameter) ? parameter.join(".") : parameter;
}
exports.formatParameter = formatParameter;
var htmlEntityMap = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
"!": "!",
"@": "@",
$: "$",
"(": "(",
")": ")",
"=": "=",
"+": "+",
"{": "{",
"}": "}",
"[": "[",
"]": "]",
};
var nonStrictSubset = ["&", "<", ">", '"', "'"];
function containsUnsafe(_a) {
var value = _a.value, strict = _a.strict, _b = _a.allowed, allowed = _b === void 0 ? [] : _b;
return Array.from(value).some(function (character) {
if (!strict && !nonStrictSubset.includes(character))
return false;
if (allowed.includes(character))
return false;
return htmlEntityMap[character] !== undefined;
});
}
exports.containsUnsafe = containsUnsafe;
function sanitize(_a) {
var value = _a.value, strict = _a.strict, _b = _a.allowed, allowed = _b === void 0 ? [] : _b;
return Array.from(value).reduce(function (sanitized, char) {
return !htmlEntityMap[char] ||
allowed.includes(char) ||
(!strict && !nonStrictSubset.includes(char))
? "" + sanitized + char
: "" + sanitized + htmlEntityMap[char];
}, "");
}
exports.sanitize = sanitize;
function isNull(value) {
return value == null || value === "";
}
exports.isNull = isNull;