1
+ /**
2
+ * @import {ApplicationDependencyList, PackageElmJson, PackageName} from './types/content';
3
+ * @import {VersionString} from './types/version';
4
+ */
5
+
1
6
const ProjectJsonFiles = require ( './project-json-files' ) ;
2
7
8
+ /**
9
+ * @param {ApplicationDependencyList } reviewDirectDependencies
10
+ * @param {VersionString } elmVersion
11
+ */
3
12
async function collectRuleLinks ( reviewDirectDependencies , elmVersion ) {
4
13
const elmJsonForReviewDependenciesPromises = Object . entries (
5
14
reviewDirectDependencies
@@ -24,6 +33,10 @@ async function collectRuleLinks(reviewDirectDependencies, elmVersion) {
24
33
) ;
25
34
}
26
35
36
+ /**
37
+ * @param {ApplicationDependencyList } reviewDirectDependencies
38
+ * @param {PackageElmJson[] } elmJsonForReviewDependencies
39
+ */
27
40
function computeLinksToRuleDocs (
28
41
reviewDirectDependencies ,
29
42
elmJsonForReviewDependencies
@@ -42,19 +55,28 @@ function computeLinksToRuleDocs(
42
55
? dep [ 'exposed-modules' ]
43
56
: Object . values ( dep [ 'exposed-modules' ] ) . reduce ( ( acc , items ) => [
44
57
...acc ,
45
- items
58
+ ... items
46
59
] ) ;
47
60
48
61
for ( const moduleName of exposedModules ) {
49
- acc [ moduleName ] = linkToModule ( depName , packageVersion , moduleName ) ;
62
+ acc [ moduleName ] = linkToModule (
63
+ /** @type {PackageName } */ ( depName ) ,
64
+ packageVersion ,
65
+ moduleName
66
+ ) ;
50
67
}
51
68
52
69
return acc ;
53
70
} ,
54
- { }
71
+ /** @type { Record<string, string> } */ ( { } )
55
72
) ;
56
73
}
57
74
75
+ /**
76
+ * @param {PackageName } dependencyName
77
+ * @param {VersionString } packageVersion
78
+ * @param {string } moduleName
79
+ */
58
80
function linkToModule ( dependencyName , packageVersion , moduleName ) {
59
81
const urlModuleName = moduleName . split ( '.' ) . join ( '-' ) ;
60
82
return `https://package.elm-lang.org/packages/${ dependencyName } /${ packageVersion } /${ urlModuleName } ` ;
0 commit comments