Skip to content

Commit

Permalink
Merge pull request #485 from Zigje9/refactor/vscode-type
Browse files Browse the repository at this point in the history
refactor(vscode): temp type 제거 및 engine 에서 가져온 타입 재정의
  • Loading branch information
Zigje9 committed Sep 24, 2023
2 parents 196d9ef + 4c46e7a commit 33afc03
Show file tree
Hide file tree
Showing 11 changed files with 135 additions and 90 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions packages/vscode/src/types/CSMDictionary.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { StemCommitNode } from "./StemCommitNode";

interface CSMNode {
base: StemCommitNode;
source: StemCommitNode[];
}

export interface CSMDictionary {
[branch: string]: CSMNode[];
}
16 changes: 16 additions & 0 deletions packages/vscode/src/types/Commit.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import type { DiffStatistics } from "./DiffStatistics";
import type { GitHubUser } from "./GitHubUser";

export type Commit = {
id: string;
parentIds: string[];
author: GitHubUser;
committer: GitHubUser;
authorDate: string;
commitDate: string;
diffStatistics: DiffStatistics;
message: string;
tags: string[];
releaseTags: string[];
// fill necessary properties...
};
17 changes: 17 additions & 0 deletions packages/vscode/src/types/CommitMessageType.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
export const CommitMessageTypeList = [
"build",
"chore",
"ci",
"docs",
"feat",
"fix",
"pert",
"refactor",
"revert",
"style",
"test",
];

const COMMIT_MESSAGE_TYPE = [...CommitMessageTypeList] as const;

export type CommitMessageType = (typeof COMMIT_MESSAGE_TYPE)[number];
11 changes: 11 additions & 0 deletions packages/vscode/src/types/DiffStatistics.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export type DiffStatistics = {
changedFileCount: number;
insertions: number;
deletions: number;
files: {
[id: string]: {
insertions: number;
deletions: number;
};
};
};
12 changes: 12 additions & 0 deletions packages/vscode/src/types/DifferenceStatistic.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
interface FileChanged {
[path: string]: {
insertionCount: number;
deletionCount: number;
};
}

export interface DifferenceStatistic {
totalInsertionCount: number;
totalDeletionCount: number;
fileDictionary: FileChanged;
}
5 changes: 5 additions & 0 deletions packages/vscode/src/types/GitHubUser.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export type GitHubUser = {
id: string;
names: string[];
emails: string[];
};
28 changes: 28 additions & 0 deletions packages/vscode/src/types/Node.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import type { Commit } from "./Commit";

const NODE_TYPE_NAME = ["COMMIT", "CLUSTER"] as const;
type NodeTypeName = (typeof NODE_TYPE_NAME)[number];

type NodeBase = {
nodeTypeName: NodeTypeName;
// isRootNode: boolean;
// isLeafNode: boolean;

// getParents: () => NodeType[];
};

// Node = Commit + analyzed Data as node
export type CommitNode = NodeBase & {
nodeTypeName: "COMMIT";
commit: Commit;
// seq: number;
clusterId: number; // 동일한 Cluster 내부 commit 참조 id
// hasMajorTag: boolean;
// hasMinorTag: boolean;
// isMergeCommit: boolean;
};

export type ClusterNode = NodeBase & {
nodeTypeName: "CLUSTER";
commitNodeList: CommitNode[];
};
28 changes: 28 additions & 0 deletions packages/vscode/src/types/StemCommitNode.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import type { CommitMessageType } from "./CommitMessageType";
import type { DifferenceStatistic } from "./DifferenceStatistic";

interface GitUser {
name: string;
email: string;
}

interface CommitRaw {
sequence: number;
id: string;
parents: string[];
branches: string[];
tags: string[];
author: GitUser;
authorDate: Date;
committer: GitUser;
committerDate: Date;
message: string;
differenceStatistic: DifferenceStatistic;
commitMessageType: CommitMessageType;
}

export interface StemCommitNode {
// 순회 이전에는 stemId가 존재하지 않음.
stemId?: string;
commit: CommitRaw;
}
80 changes: 0 additions & 80 deletions packages/vscode/src/utils/NodeTypes.temps.ts

This file was deleted.

16 changes: 7 additions & 9 deletions packages/vscode/src/utils/csm.mapper.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import type {
CommitNode as StemCommitNode,
CSMDictionary,
DifferenceStatistic,
} from "@githru-vscode-ext/analysis-engine/src/types";

import type { ClusterNode, CommitNode, DiffStatistics } from "./NodeTypes.temps";
import type { CSMDictionary } from "../types/CSMDictionary";
import type { DifferenceStatistic } from "../types/DifferenceStatistic";
import type { DiffStatistics } from "../types/DiffStatistics";
import type { ClusterNode, CommitNode } from "../types/Node";
import type { StemCommitNode } from "../types/StemCommitNode";

/**
* engine DifferenceStatistic → view DiffStatistics
Expand Down Expand Up @@ -34,7 +32,7 @@ const mapDiffStatisticsFrom = (params: { differenceStatistic: DifferenceStatisti
const mapCommitNodeListFrom = (params: { commits: StemCommitNode[]; clusterId: number }): CommitNode[] => {
const { commits, clusterId } = params;
return commits.map(({ commit }) => {
const releaseTags=commit.tags.filter(tag=>tag.startsWith('v')||/^[0-9.]+$/.test(tag));
const releaseTags = commit.tags.filter((tag) => tag.startsWith("v") || /^[0-9.]+$/.test(tag));
return {
nodeTypeName: "COMMIT" as const,
commit: {
Expand Down Expand Up @@ -63,7 +61,7 @@ const mapCommitNodeListFrom = (params: { commits: StemCommitNode[]; clusterId: n
// hasMajorTag: false,
// hasMinorTag: false,
clusterId,
}
};
});
};

Expand Down

0 comments on commit 33afc03

Please sign in to comment.