콘텐츠로 이동

getImpactSet

지정한 파일을 참조하고 있는 파일을, 직접 참조와 간접 참조 양쪽에 걸쳐 조회합니다. 그래프의 역방향 변을 따라가는 BFS이며, 변경 대상 파일 자신은 결과에서 제외됩니다.

문서를 변경·삭제하기 전에, 그것이 다른 어떤 문서에 영향을 미치는지 파악하고자 하는 상황이 있습니다. getImpactSet은 “이 파일을 변경하면, 어디를 다시 봐야 하는지” 를 평탄한 목록으로 반환합니다.

직접 참조와 간접 참조를 구별하고자 하실 경우에는 classifyImpact를 사용해 주십시오.

function getImpactSet(
graph: ContextGraph,
filePath: string,
): string[];
파라미터타입필수설명
graphContextGraphbuildContextGraph로 구축한 그래프
filePathstring영향 범위를 조사하고자 하는 파일의 경로. graph.nodes의 키와 일치해야 합니다

string[]을 반환합니다. filePath를 직접 또는 간접적으로 참조하고 있는 파일 경로의 배열로, 알파벳 순서로 정렬됩니다. filePath 자신은 포함되지 않습니다. 그래프 상에 해당 파일이 존재하지 않거나, 누구도 참조하고 있지 않은 경우에는 빈 배열을 반환합니다.

import { buildContextGraph, getImpactSet, loadDocuments } from "@contextlint/core";
const documents = loadDocuments(["docs/**/*.md"]);
const graph = buildContextGraph(documents);
const affected = getImpactSet(graph, "docs/architecture.md");
if (affected.length === 0) {
console.log("영향받는 파일은 없습니다");
} else {
console.log(`${affected.length} 파일이 영향을 받습니다:`);
for (const file of affected) {
console.log(` - ${file}`);
}
}