diff options
Diffstat (limited to 'tools/node_modules/eslint/node_modules/are-docs-informative/lib/index.js')
-rw-r--r-- | tools/node_modules/eslint/node_modules/are-docs-informative/lib/index.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/node_modules/are-docs-informative/lib/index.js b/tools/node_modules/eslint/node_modules/are-docs-informative/lib/index.js new file mode 100644 index 0000000000..41ff25e42d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/are-docs-informative/lib/index.js @@ -0,0 +1,31 @@ +// src/index.ts +var defaultAliases = { + a: ["an", "our"] +}; +var defaultUselessWords = ["a", "an", "i", "in", "of", "s", "the"]; +function areDocsInformative(docs, name, { + aliases = defaultAliases, + uselessWords = defaultUselessWords +} = {}) { + const docsWords = new Set(splitTextIntoWords(docs)); + const nameWords = splitTextIntoWords(name); + for (const nameWord of nameWords) { + docsWords.delete(nameWord); + } + for (const uselessWord of uselessWords) { + docsWords.delete(uselessWord); + } + return !!docsWords.size; + function normalizeWord(word) { + const wordLower = word.toLowerCase(); + return aliases[wordLower] ?? wordLower; + } + function splitTextIntoWords(text) { + return (typeof text === "string" ? [text] : text).flatMap((name2) => { + return name2.replace(/\W+/gu, " ").replace(/([a-z])([A-Z])/gu, "$1 $2").trim().split(" "); + }).flatMap(normalizeWord).filter(Boolean); + } +} +export { + areDocsInformative +}; |