UNPKG

eslint-plugin-detect-bad-words

Version:
46 lines (45 loc) 1.76 kB
'use strict'; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildErrorMessage = exports.isEmpty = exports.searchForBadWords = void 0; var object_1 = __importDefault(require("badwords/object")); var escapeString = function (string) { return string.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'); }; var searchForBadWords = function (customBadWords, value) { var badWordsResult = value .split(' ') .reduce(function (acc, word) { if (object_1.default[word.trim().toLowerCase()] === 1) acc.push(word); return acc; }, []); var customBadwordsResult = customBadWords.reduce(function (acc, word) { var pattern = new RegExp('\\b' + escapeString(word) + '\\b', 'i'); if (pattern.test(value)) { var match = value.match(pattern); if (match) acc.push(match[0]); } return acc; }, []); return __spreadArrays(badWordsResult, customBadwordsResult); }; exports.searchForBadWords = searchForBadWords; var isEmpty = function (arr) { return Array.isArray(arr) && arr.length === 0; }; exports.isEmpty = isEmpty; var buildErrorMessage = function (word) { return "Word `" + word + "` is not allowed."; }; exports.buildErrorMessage = buildErrorMessage;