refactor: dedupe string list helpers

This commit is contained in:
Peter Steinberger
2026-04-07 04:16:54 +01:00
parent 80a37ef32a
commit 59eb291c6e
6 changed files with 30 additions and 47 deletions

View File

@@ -3,29 +3,23 @@ import {
loadExtraBootstrapFilesWithDiagnostics,
} from "../../../agents/workspace.js";
import { createSubsystemLogger } from "../../../logging/subsystem.js";
import { normalizeTrimmedStringList } from "../../../shared/string-normalization.js";
import { resolveHookConfig } from "../../config.js";
import { isAgentBootstrapEvent, type HookHandler } from "../../hooks.js";
const HOOK_KEY = "bootstrap-extra-files";
const log = createSubsystemLogger("bootstrap-extra-files");
function normalizeStringArray(value: unknown): string[] {
if (!Array.isArray(value)) {
return [];
}
return value.map((v) => (typeof v === "string" ? v.trim() : "")).filter(Boolean);
}
function resolveExtraBootstrapPatterns(hookConfig: Record<string, unknown>): string[] {
const fromPaths = normalizeStringArray(hookConfig.paths);
const fromPaths = normalizeTrimmedStringList(hookConfig.paths);
if (fromPaths.length > 0) {
return fromPaths;
}
const fromPatterns = normalizeStringArray(hookConfig.patterns);
const fromPatterns = normalizeTrimmedStringList(hookConfig.patterns);
if (fromPatterns.length > 0) {
return fromPatterns;
}
return normalizeStringArray(hookConfig.files);
return normalizeTrimmedStringList(hookConfig.files);
}
const bootstrapExtraFilesHook: HookHandler = async (event) => {