Skip to content

Commit bfeebc9

Browse files
committed
chore: enable no-implicit-any on review-dependencies.js
1 parent 01e2f25 commit bfeebc9

File tree

4 files changed

+37
-6
lines changed

4 files changed

+37
-6
lines changed

lib/new-rule.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,18 @@ async function addRule(options, elmJson, ruleName, ruleType) {
194194

195195
if (elmJson.type === 'package' && packageNameRegex.test(elmJson.name)) {
196196
console.log('Exposing the rule in elm.json');
197-
if (!elmJson['exposed-modules'].includes(ruleName)) {
197+
198+
const exposedModules = Array.isArray(elmJson['exposed-modules'])
199+
? elmJson['exposed-modules']
200+
: Object.values(elmJson['exposed-modules']).reduce((acc, items) => [
201+
...acc,
202+
...items
203+
]);
204+
205+
if (!exposedModules.includes(ruleName)) {
198206
const newElmJson = {
199207
...elmJson,
200-
'exposed-modules': [...elmJson['exposed-modules'], ruleName].sort()
208+
'exposed-modules': [...exposedModules, ruleName].sort()
201209
};
202210

203211
writeFile(dir, 'elm.json', JSON.stringify(newElmJson, null, 4));

lib/review-dependencies.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1+
/**
2+
* @import {ApplicationDependencyList, PackageElmJson, PackageName} from './types/content';
3+
* @import {VersionString} from './types/version';
4+
*/
5+
16
const ProjectJsonFiles = require('./project-json-files');
27

8+
/**
9+
* @param {ApplicationDependencyList} reviewDirectDependencies
10+
* @param {VersionString} elmVersion
11+
*/
312
async function collectRuleLinks(reviewDirectDependencies, elmVersion) {
413
const elmJsonForReviewDependenciesPromises = Object.entries(
514
reviewDirectDependencies
@@ -24,6 +33,10 @@ async function collectRuleLinks(reviewDirectDependencies, elmVersion) {
2433
);
2534
}
2635

36+
/**
37+
* @param {ApplicationDependencyList} reviewDirectDependencies
38+
* @param {PackageElmJson[]} elmJsonForReviewDependencies
39+
*/
2740
function computeLinksToRuleDocs(
2841
reviewDirectDependencies,
2942
elmJsonForReviewDependencies
@@ -42,19 +55,28 @@ function computeLinksToRuleDocs(
4255
? dep['exposed-modules']
4356
: Object.values(dep['exposed-modules']).reduce((acc, items) => [
4457
...acc,
45-
items
58+
...items
4659
]);
4760

4861
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+
);
5067
}
5168

5269
return acc;
5370
},
54-
{}
71+
/** @type {Record<string, string>} */ ({})
5572
);
5673
}
5774

75+
/**
76+
* @param {PackageName} dependencyName
77+
* @param {VersionString} packageVersion
78+
* @param {string} moduleName
79+
*/
5880
function linkToModule(dependencyName, packageVersion, moduleName) {
5981
const urlModuleName = moduleName.split('.').join('-');
6082
return `https://package.elm-lang.org/packages/${dependencyName}/${packageVersion}/${urlModuleName}`;

lib/types/content.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export type PackageElmJson = {
5454
summary: string;
5555
license: string;
5656
version: VersionString;
57-
'exposed-modules': (string | Record<string, string>)[];
57+
'exposed-modules': string[] | Record<string, string[]>;
5858
'elm-version': VersionRange;
5959
dependencies: PackageDependencyList;
6060
'test-dependencies': PackageDependencyList;

tsconfig.no-implicit-any.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"lib/result-cache.js",
3636
"lib/result-cache-json.js",
3737
"lib/result-cache-worker.js",
38+
"lib/review-dependencies.js",
3839
"lib/spinner.js",
3940
"lib/state.js",
4041
"lib/styled-message.js",

0 commit comments

Comments
 (0)