summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/node_modules/are-docs-informative/lib/index.js
diff options
context:
space:
mode:
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.js31
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
+};