Skip to content

Commit

Permalink
Merge pull request #11 from ysk8hori/feat/multiple-dir
Browse files Browse the repository at this point in the history
複数ディレクトリ読み込んだ際には根っこのディレクトリノードを表示する
  • Loading branch information
ysk8hori committed Aug 1, 2022
2 parents e6867e5 + 64d26b0 commit 1d91a44
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 8 deletions.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<script
type="module"
crossorigin
src="/typescript-graph/assets/index.0e779bfa.js"
src="/typescript-graph/assets/index.f74c1eca.js"
></script>
<link rel="stylesheet" href="/typescript-graph/assets/index.5265c558.css" />
</head>
Expand Down
File renamed without changes.
26 changes: 20 additions & 6 deletions src/models/createGraph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,37 @@ export async function createGraph(
elements: ElementDefinition[] = []
): Promise<ElementDefinition[]> {
if (!dirModels) return [];
const nodes = dirModels.map(createNodes).flat();
const nodes = dirModels
.map((dirModel) =>
createNodes(dirModel, { multipleDir: 2 <= dirModels.length })
)
.flat();
const edges = dirModels
.map((dirModel) => createEdges(nodes, dirModel))
.flat();
elements.push(...nodes, ...edges);
return elements;
}

function createNodes(dirModel: DirModel): NodeDefinition[] {
function createNodes(
dirModel: DirModel,
options: { multipleDir: boolean }
): NodeDefinition[] {
return [
...createDirectoryNode(dirModel),
...createDirectoryNode(dirModel, options),
...(dirModel.tsFiles ?? []).map(createTsFileNode),
...(dirModel.directories ?? []).map(createNodes).flat(),
...(dirModel.directories ?? [])
.map((dirModel, _i, dirModels) =>
createNodes(dirModel, { multipleDir: 2 <= dirModels.length })
)
.flat(),
];
}
function createDirectoryNode(dirModel: DirModel): NodeDefinition[] {
if (!dirModel.parent) return [];
function createDirectoryNode(
dirModel: DirModel,
{ multipleDir }: { multipleDir: boolean }
): NodeDefinition[] {
if (!multipleDir && !dirModel.parent) return [];
return [
{
group: "nodes",
Expand Down
1 change: 1 addition & 0 deletions src/models/tes/b/a-1.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export function a1() {}
3 changes: 3 additions & 0 deletions src/models/tes/b/a-2.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { util } from "../dummyUtil";

export function a2() {}
1 change: 1 addition & 0 deletions src/models/tes/b/a-3-typeonly.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type A3 = string;
1 change: 1 addition & 0 deletions src/models/tes/b/a.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export function a() {}
1 change: 1 addition & 0 deletions src/models/tes/b/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import { a } from "./a";

0 comments on commit 1d91a44

Please sign in to comment.