Sha256: f2b99beccbd95e628f5d71798a8e786d34dc3d26b47eb6303a91a88b37f9f400
Contents?: true
Size: 1.15 KB
Versions: 24
Compression:
Stored size: 1.15 KB
Contents
'use strict'; const _ = require('lodash'); /** @typedef {false | { match: string, pattern: string }} ReturnValue */ /** * Checks if a string contains a value. The comparison value can be a string or * an array of strings. * * Any strings starting and ending with `/` are ignored. Use the * matchesStringOrRegExp() util to match regexes. * * @param {string} input * @param {string | string[]} comparison * * @returns {ReturnValue} */ module.exports = function containsString(input, comparison) { if (!Array.isArray(comparison)) { return testAgainstString(input, comparison); } for (const comparisonItem of comparison) { const testResult = testAgainstString(input, comparisonItem); if (testResult) { return testResult; } } return false; }; /** * * @param {string} value * @param {string} comparison * * @returns {ReturnValue} */ function testAgainstString(value, comparison) { if (!comparison) return false; if (!_.isString(comparison)) return false; if (comparison.startsWith('/') && comparison.endsWith('/')) { return false; } if (value.includes(comparison)) { return { match: value, pattern: comparison }; } return false; }
Version data entries
24 entries across 24 versions & 1 rubygems