Skip to content

Commit 9dafed4

Browse files
authored
chore: improve naming logic across scripts (#34)
This Pull request implements uniformity in property, parameters, and general naming across scripts in `src/lib`; This changes approached the naming by associating param properties to either main project repo, forked repo or both, it also renamed some function based off of pure logical name that made sense to the functionality performed by the renamed function. ### Changes Made - Renamed all project related repo details param and its branch ref property to `projectRepoDetails` and `repoMainBranchRef` respectively; Changes occurred across the listed scripts... - fork script - Renamed all fork related repo details params and its branch ref property to `forkedRepoDetails` and `repoChangeBranchRef` respectively; this change signifies that actions taken on a forked repo is expected to only occur on the change branch i.e. the branch created on forked repo to make changes to; changes occurred on the listed scripts - word-editor script - Renamed the `repo` param in `getBranch` function to `repoFullname` to state explicitly that a repo fullname is expected by the function - Renamed the `fork` param in `updateRepositoryFork` fucntion to `forkedRepoFullname` to state explicitly that the forked repo fullname is expected by the function - Renamed `editExistingWord` function to `updateExistingWord` to better state the function's logic 📖
1 parent 0c3d972 commit 9dafed4

3 files changed

Lines changed: 38 additions & 33 deletions

File tree

src/lib/branch.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ export async function createBranch(userOctokit, repoDetails, newBranchName) {
3333
/**
3434
* Get a Branch/Ref details
3535
* @param {import("octokit").Octokit} userOctokit
36-
* @param {string} repo
36+
* @param {string} repoFullname
3737
* @param {string} ref
3838
* @returns Branch/Ref details
3939
*/
40-
export async function getBranch(userOctokit, repo, ref) {
41-
const { repoOwner, repoName } = getRepoParts(repo);
40+
export async function getBranch(userOctokit, repoFullname, ref) {
41+
const { repoOwner, repoName } = getRepoParts(repoFullname);
4242
const formattedRef = ref.split("/")[0] === "refs"
4343
? ref.split("/").slice(1).join("/")
4444
: ref;

src/lib/fork.js

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,22 @@ import { getRepoParts } from "./utils/index.js";
44
/**
55
* Fork the project (specified) Repo to user account
66
* @param {import("octokit").Octokit} userOctokit
7-
* @param {{ repoFullname: string, repoMainBranchRef: string }} repo
7+
* @param {{ repoFullname: string, repoMainBranchRef: string }} projectRepoDetails
8+
* @returns {string} fullname of forked repo - [userlogin]/jargons.dev
89
*/
9-
export async function forkRepository(userOctokit, repoDetails) {
10-
const { repoFullname, repoMainBranchRef } = repoDetails;
10+
export async function forkRepository(userOctokit, projectRepoDetails) {
11+
const { repoFullname, repoMainBranchRef } = projectRepoDetails;
1112
const { repoOwner, repoName } = getRepoParts(repoFullname);
1213

1314
try {
1415
const { data: user } = await userOctokit.request("GET /user");
1516

16-
const fork = await isRepositoryForked(userOctokit, repoFullname, user.login );
17+
const fork = await isRepositoryForked(userOctokit, repoFullname, user.login);
1718

1819
if (fork) {
1920
console.log("Repo is already forked!");
2021

21-
const { isUpdated, updateSHA } = await isRepositoryForkUpdated(userOctokit, repoDetails, fork)
22+
const { isUpdated, updateSHA } = await isRepositoryForkUpdated(userOctokit, projectRepoDetails, fork)
2223

2324
if (!isUpdated) {
2425
console.log("Repo is outdated!");
@@ -46,18 +47,21 @@ export async function forkRepository(userOctokit, repoDetails) {
4647
/**
4748
* Update (Sync) repository to state of main (head) repository
4849
* @param {import("octokit").Octokit} userOctokit
49-
* @param {string} fork
50+
* @param {string} forkedRepoFullname
5051
* @param {{ ref: string, sha: string }} headRepoRef
5152
*/
52-
async function updateRepositoryFork(userOctokit, fork, headRepoRef) {
53-
const { repoOwner, repoName } = getRepoParts(fork);
53+
async function updateRepositoryFork(userOctokit, forkedRepoFullname, headRepoRef) {
54+
const { repoOwner, repoName } = getRepoParts(forkedRepoFullname);
5455
const { ref, sha } = headRepoRef;
56+
const formattedRef = ref.split("/")[0] === "refs"
57+
? ref.split("/").slice(1).join("/")
58+
: ref;
5559

5660
try {
5761
await userOctokit.request("PATCH /repos/{owner}/{repo}/git/refs/{ref}", {
5862
owner: repoOwner,
5963
repo: repoName,
60-
ref, //-> `heads/${branchToSync}`
64+
ref: formattedRef, //-> `heads/${branchToSync}`
6165
sha
6266
});
6367

@@ -71,19 +75,20 @@ async function updateRepositoryFork(userOctokit, fork, headRepoRef) {
7175
/**
7276
* Check whether a fork is (in Sync with head repo) up-to-date with main repo
7377
* @param {import("octokit").Octokit} userOctokit
74-
* @param {{ repoFullname: string, repoMainBranchRef: string }} repoDetails
75-
* @param {string} fork
76-
* @returns {{ isUpdated: boolean, updateSHA: string }}
78+
* @param {{ repoFullname: string, repoMainBranchRef: string }} projectRepoDetails
79+
* @param {string} forkedRepoFullname
80+
* @returns {Promise<{ isUpdated: boolean, updateSHA: string }>}
7781
*/
78-
async function isRepositoryForkUpdated(userOctokit, repoDetails, fork) {
79-
const { repoFullname, repoMainBranchRef } = repoDetails;
82+
async function isRepositoryForkUpdated(userOctokit, projectRepoDetails, forkedRepoFullname) {
83+
const { repoFullname, repoMainBranchRef } = projectRepoDetails;
8084

81-
const userForkedBranch = await getBranch(userOctokit, fork, repoMainBranchRef);
82-
const projectBranch = await getBranch(userOctokit, repoFullname, repoMainBranchRef);
85+
// `repoMainBranchRef` because the forked repo's main should be compared again project's same main repo
86+
const forkedRepoMainBranch = await getBranch(userOctokit, forkedRepoFullname, repoMainBranchRef);
87+
const projectRepoMainBranch = await getBranch(userOctokit, repoFullname, repoMainBranchRef);
8388

8489
return {
85-
isUpdated: userForkedBranch.object.sha === projectBranch.object.sha,
86-
updateSHA: projectBranch.object.sha
90+
isUpdated: forkedRepoMainBranch.object.sha === projectRepoMainBranch.object.sha,
91+
updateSHA: projectRepoMainBranch.object.sha
8792
};
8893
}
8994

@@ -92,7 +97,7 @@ async function isRepositoryForkUpdated(userOctokit, repoDetails, fork) {
9297
* @param {import("octokit").Octokit} userOctokit
9398
* @param {string} repoFullname
9499
* @param {string} userLogin
95-
* @returns { string | null }
100+
* @returns {Promsise<string | null>}
96101
*
97102
* @todo paginate response to get a list of all forks in one call
98103
*/

src/lib/word-editor.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import wordFileTemplate from "./template/word.md.js";
44
/**
55
* Write and add a new word to user's forked dictionary
66
* @param {import("octokit").Octokit} userOctokit
7-
* @param {{ repoFullname: string, repoBranchRef: string }} forkedRepoDetails
7+
* @param {{ repoFullname: string, repoChangeBranchRef: string }} forkedRepoDetails
88
* @param {{ title: string, content: string }} word
99
*/
1010
export async function writeNewWord(userOctokit, forkedRepoDetails, { title, content }) {
11-
const { repoFullname, repoBranchRef } = forkedRepoDetails;
11+
const { repoFullname, repoChangeBranchRef } = forkedRepoDetails;
1212
const { repoOwner, repoName } = getRepoParts(repoFullname);
13-
const branch = repoBranchRef.split("/").slice(2).join("/");
13+
const branch = repoChangeBranchRef.split("/").slice(2).join("/");
1414
const wordFileContent = writeWordFileContent(title, content);
1515

1616
try {
@@ -30,15 +30,15 @@ export async function writeNewWord(userOctokit, forkedRepoDetails, { title, cont
3030
}
3131

3232
/**
33-
* Edit and update an existing word in user's forked dictionary
33+
* Update an existing word in user's forked dictionary
3434
* @param {import("octokit").Octokit} userOctokit
35-
* @param {{ repoFullname: string, repoBranchRef: string }} forkedRepoDetails
35+
* @param {{ repoFullname: string, repoChangeBranchRef: string }} forkedRepoDetails
3636
* @param {{ path: string, sha: string, title: string, content: string }} word enter new content as value to `content` property
3737
*/
38-
export async function editExistingWord(userOctokit, forkedRepoDetails, { path, sha, title, content }) {
39-
const { repoFullname, repoBranchRef } = forkedRepoDetails;
38+
export async function updateExistingWord(userOctokit, forkedRepoDetails, { path, sha, title, content }) {
39+
const { repoFullname, repoChangeBranchRef } = forkedRepoDetails;
4040
const { repoOwner, repoName } = getRepoParts(repoFullname);
41-
const branch = repoBranchRef.split("/").slice(2).join("/");
41+
const branch = repoChangeBranchRef.split("/").slice(2).join("/");
4242
const wordFileContent = writeWordFileContent(title, content);
4343

4444
try {
@@ -61,11 +61,11 @@ export async function editExistingWord(userOctokit, forkedRepoDetails, { path, s
6161
/**
6262
* Retrieve data for already existing word
6363
* @param {import("octokit").Octokit} userOctokit
64-
* @param {{ repoFullname: string, repoBranchRef: string }} forkedRepoDetails
64+
* @param {{ repoFullname: string, repoBranchRef: string }} repoDetails
6565
* @param {string} wordTitle
6666
*/
67-
export async function getExistingWord(userOctokit, forkedRepoDetails, wordTitle) {
68-
const { repoFullname, repoBranchRef } = forkedRepoDetails;
67+
export async function getExistingWord(userOctokit, repoDetails, wordTitle) {
68+
const { repoFullname, repoBranchRef } = repoDetails;
6969
const { repoOwner, repoName } = getRepoParts(repoFullname);
7070

7171
try {

0 commit comments

Comments
 (0)