From 09ff261f156a8599d45c1496fe246ded6e035191 Mon Sep 17 00:00:00 2001 From: HampusM Date: Mon, 26 Jul 2021 23:56:53 +0200 Subject: Added backend TSDoc/JSDoc comments & refactored a tiny bit --- packages/server/src/git/tree_entry.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'packages/server/src/git/tree_entry.ts') diff --git a/packages/server/src/git/tree_entry.ts b/packages/server/src/git/tree_entry.ts index e4780c8..52f9988 100644 --- a/packages/server/src/git/tree_entry.ts +++ b/packages/server/src/git/tree_entry.ts @@ -5,12 +5,19 @@ import { dirname } from "path"; import { findAsync } from "./misc"; import { Tree } from "./tree"; +/** + * The core structure of a tree entry + */ export abstract class BaseTreeEntry { protected _ng_tree_entry: NodeGitTreeEntry; protected _owner: Repository; public path: string; + /** + * @param owner - The repository which the tree entry is in + * @param entry - An instance of a Nodegit tree entry + */ constructor(owner: Repository, entry: NodeGitTreeEntry) { this._ng_tree_entry = entry; this._owner = owner; @@ -18,6 +25,11 @@ export abstract class BaseTreeEntry { this.path = entry.path(); } + /** + * Returns the tree entry's latest commit + * + * @returns An instance of a commit + */ public async latestCommit(): Promise { const commits = await this._owner.commits(); @@ -32,18 +44,39 @@ export abstract class BaseTreeEntry { } } +/** + * A representation of a tree entry that's a tree + */ export class TreeEntry extends BaseTreeEntry { + /** + * Returns the tree of the tree entry + * + * @returns An instance of a tree + */ public async tree(): Promise { return new Tree(this._owner, await this._ng_tree_entry.getTree()); } } +/** + * A representation of a tree entry that's a blob + */ export class BlobTreeEntry extends BaseTreeEntry { + /** + * Returns the blob's content + */ public async content(): Promise { return (await this._ng_tree_entry.getBlob()).toString(); } } +/** + * A factory which creates a tree entry + * + * @param owner - The repository that the tree entry is in + * @param entry - An instance of a Nodegit tree entry + * @returns An instance of a tree entry + */ export function createTreeEntry(owner: Repository, entry: NodeGitTreeEntry): BaseTreeEntry { return entry.isBlob() ? new BlobTreeEntry(owner, entry) -- cgit v1.2.3-18-g5258