Skip to content

Commit 4011b23

Browse files
committedJan 17, 2025·
Minor housekeeping
1 parent c510a35 commit 4011b23

File tree

3 files changed

+36
-25
lines changed

3 files changed

+36
-25
lines changed
 

‎packages/knip/src/WorkspaceWorker.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,9 @@ export class WorkspaceWorker {
338338
if (hasResolveConfig) {
339339
const inputs = (await plugin.resolveConfig?.(config, opts)) ?? [];
340340
for (const input of inputs) {
341-
if (isConfigPattern(input))
341+
if (isConfigPattern(input)) {
342342
handleConfigInput(input.pluginName, { ...input, containingFilePath: configFilePath });
343+
}
343344
addInput(input, configFilePath);
344345
}
345346
data.resolveConfig = inputs;

‎packages/knip/src/plugins/github-actions/index.ts

+12-24
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import type { IsPluginEnabled, Plugin, ResolveConfig } from '../../types/config.js';
1+
import type { IsPluginEnabled, Plugin, PluginOptions, ResolveConfig } from '../../types/config.js';
22
import { _firstGlob } from '../../util/glob.js';
33
import { type Input, isDeferResolveEntry, toEntry } from '../../util/input.js';
44
import { findByKeyDeep } from '../../util/object.js';
55
import { join, relative } from '../../util/path.js';
6+
import type { Job, Runs } from './types.js';
67

78
// https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
89

@@ -19,20 +20,13 @@ const config = ['.github/workflows/*.{yml,yaml}', '.github/**/action.{yml,yaml}'
1920

2021
const isString = (value: unknown): value is string => typeof value === 'string';
2122

22-
type Step = {
23-
run?: string;
24-
uses?: string;
25-
with?: {
26-
repository: string;
27-
path: string;
28-
};
29-
'working-directory'?: string;
30-
};
31-
32-
type Steps = Step[];
33-
34-
type Job = {
35-
steps: Steps;
23+
const getActionDependencies = (config: any, options: PluginOptions) => {
24+
const { configFileDir, configFileName } = options;
25+
const isActionManifest = configFileName === 'action.yml' || configFileName === 'action.yaml';
26+
if (!(isActionManifest && config?.runs?.using?.startsWith('node'))) return [];
27+
const runs: Runs = config.runs;
28+
const scripts = [runs.pre, runs.main, runs.post].filter(isString);
29+
return scripts.map(script => join(configFileDir, script));
3630
};
3731

3832
const resolveConfig: ResolveConfig = async (config, options) => {
@@ -53,23 +47,17 @@ const resolveConfig: ResolveConfig = async (config, options) => {
5347
const dir = join(rootCwd, path && workingDir ? relative(workingDir, path) : workingDir ? workingDir : '.');
5448
if (step.run) {
5549
for (const input of getInputsFromScripts([step.run], { knownBinsOnly: true })) {
56-
if (isDeferResolveEntry(input) && path && !workingDir)
50+
if (isDeferResolveEntry(input) && path && !workingDir) {
5751
input.specifier = relative(join(dir, path), join(rootCwd, input.specifier));
52+
}
5853
if (isProduction) Object.assign(input, { optional: true });
5954
inputs.add({ ...input, dir });
6055
}
6156
}
6257
}
6358
}
6459

65-
const getActionDependencies = () => {
66-
const isActionManifest = configFileName === 'action.yml' || configFileName === 'action.yaml';
67-
if (!(isActionManifest && config?.runs?.using?.startsWith('node'))) return [];
68-
const scripts = [config.runs.pre, config.runs.main, config.runs.post].filter(isString);
69-
return scripts.map(script => join(configFileDir, script));
70-
};
71-
72-
return [...getActionDependencies().map(toEntry), ...inputs];
60+
return [...inputs, ...getActionDependencies(config, options).map(toEntry)];
7361
};
7462

7563
export default {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
type Step = {
2+
run?: string;
3+
uses?: string;
4+
with?: {
5+
repository: string;
6+
path: string;
7+
};
8+
'working-directory'?: string;
9+
};
10+
11+
type Steps = Step[];
12+
13+
export type Job = {
14+
steps: Steps;
15+
};
16+
17+
export type Runs = {
18+
using: string;
19+
main?: string;
20+
pre?: string;
21+
post?: string;
22+
};

0 commit comments

Comments
 (0)
Please sign in to comment.