MCPcopy Index your code
hub / github.com/npmx-dev/npmx.dev / hasReadmeDevInstallHint

Function hasReadmeDevInstallHint

shared/utils/dev-dependency.ts:66–89  ·  view source on GitHub ↗
(packageName: string, readmeContent?: string | null)

Source from the content-addressed store, hash-verified

64}
65
66function hasReadmeDevInstallHint(packageName: string, readmeContent?: string | null): boolean {
67 if (!readmeContent) return false
68
69 const escapedName = escapeRegExp(packageName)
70 const escapedNpmName = escapeRegExp(`npm:${packageName}`)
71 const packageSpec = `(?:${escapedName}|${escapedNpmName})(?:@[\\w.-]+)?`
72
73 const patterns = [
74 // npm install -D pkg / pnpm add --save-dev pkg
75 new RegExp(
76 String.raw`(?:npm|pnpm|yarn|bun|vlt)\s+(?:install|add|i)\s+(?:--save-dev|--dev|-d)\s+${packageSpec}`,
77 'i',
78 ),
79 // npm install pkg --save-dev / pnpm add pkg -D
80 new RegExp(
81 String.raw`(?:npm|pnpm|yarn|bun|vlt)\s+(?:install|add|i)\s+${packageSpec}\s+(?:--save-dev|--dev|-d)`,
82 'i',
83 ),
84 // deno add -D npm:pkg
85 new RegExp(String.raw`deno\s+add\s+(?:--dev|-D)\s+${packageSpec}`, 'i'),
86 ]
87
88 return patterns.some(pattern => pattern.test(readmeContent))
89}
90
91export function getDevDependencySuggestion(
92 packageName: string,

Callers 1

Calls 1

escapeRegExpFunction · 0.85

Tested by

no test coverage detected