git-it-done 1.0.1 â 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +24 -29
- package/dist/index.js.map +1 -1
- package/dist/utils/checkGitStatus.d.ts +1 -1
- package/dist/utils/checkGitStatus.js +7 -10
- package/dist/utils/checkGitStatus.js.map +1 -1
- package/dist/utils/commitMessage.d.ts +1 -1
- package/dist/utils/commitMessage.js +17 -23
- package/dist/utils/commitMessage.js.map +1 -1
- package/dist/utils/displayStatus.d.ts +1 -1
- package/dist/utils/displayStatus.js +10 -16
- package/dist/utils/displayStatus.js.map +1 -1
- package/dist/utils/fileStaging.d.ts +1 -1
- package/dist/utils/fileStaging.js +21 -27
- package/dist/utils/fileStaging.js.map +1 -1
- package/dist/utils/formatFileStatus.js +8 -14
- package/dist/utils/formatFileStatus.js.map +1 -1
- package/dist/utils/generateCommitMessage.d.ts +1 -1
- package/dist/utils/generateCommitMessage.js +8 -14
- package/dist/utils/generateCommitMessage.js.map +1 -1
- package/dist/utils/getFileChanges.d.ts +1 -1
- package/dist/utils/getFileChanges.js +5 -8
- package/dist/utils/getFileChanges.js.map +1 -1
- package/dist/utils/gitCommand.js +3 -6
- package/dist/utils/gitCommand.js.map +1 -1
- package/dist/utils/isGitrepo.js +3 -6
- package/dist/utils/isGitrepo.js.map +1 -1
- package/dist/utils/performCommit.js +17 -23
- package/dist/utils/performCommit.js.map +1 -1
- package/dist/utils/process_interruption.js +5 -8
- package/dist/utils/process_interruption.js.map +1 -1
- package/dist/utils/push_to_remote.js +16 -22
- package/dist/utils/push_to_remote.js.map +1 -1
- package/dist/utils/types/types.js +1 -2
- package/package.json +38 -8
- package/readme.md +298 -9
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
"use strict";
|
|
1
|
+
#!/usr/bin/env node
|
|
3
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -9,57 +8,53 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
9
|
});
|
|
11
10
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const commitMessage_1 = require("./utils/commitMessage");
|
|
23
|
-
const performCommit_1 = require("./utils/performCommit");
|
|
24
|
-
const push_to_remote_1 = require("./utils/push_to_remote");
|
|
25
|
-
const process_interruption_1 = __importDefault(require("./utils/process_interruption"));
|
|
11
|
+
import { intro, outro, cancel } from '@clack/prompts';
|
|
12
|
+
import chalk from 'chalk';
|
|
13
|
+
import { checkGitStatus } from './utils/checkGitStatus.js';
|
|
14
|
+
import { getChanges } from './utils/getFileChanges.js';
|
|
15
|
+
import { displayRepositoryStatus } from './utils/displayStatus.js';
|
|
16
|
+
import { handleFileStaging } from './utils/fileStaging.js';
|
|
17
|
+
import { handleCommitMessage } from './utils/commitMessage.js';
|
|
18
|
+
import { performCommit } from './utils/performCommit.js';
|
|
19
|
+
import { handlePushToRemote } from './utils/push_to_remote.js';
|
|
20
|
+
import start from './utils/process_interruption.js';
|
|
26
21
|
function main() {
|
|
27
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
23
|
console.clear();
|
|
29
|
-
|
|
24
|
+
intro(chalk.bgBlue(' Auto Commit Tool '));
|
|
30
25
|
// 1. Validate git repository and configuration
|
|
31
|
-
const gitStatus =
|
|
26
|
+
const gitStatus = checkGitStatus();
|
|
32
27
|
if (!gitStatus.valid) {
|
|
33
|
-
|
|
28
|
+
cancel(gitStatus.reason);
|
|
34
29
|
process.exit(1);
|
|
35
30
|
}
|
|
36
31
|
// 2. Get current repository changes
|
|
37
|
-
const changes =
|
|
32
|
+
const changes = getChanges();
|
|
38
33
|
const allFiles = [...changes.staged, ...changes.unstaged, ...changes.untracked];
|
|
39
34
|
// 3. Handle no changes case
|
|
40
35
|
if (allFiles.length === 0) {
|
|
41
|
-
|
|
36
|
+
outro(chalk.green('⨠Working directory is clean. Nothing to commit! đ'));
|
|
42
37
|
process.exit(0);
|
|
43
38
|
}
|
|
44
39
|
// 4. Display current repository status
|
|
45
|
-
|
|
40
|
+
displayRepositoryStatus(changes);
|
|
46
41
|
// 5. Handle file staging if needed
|
|
47
|
-
const filesToCommit = yield
|
|
42
|
+
const filesToCommit = yield handleFileStaging(changes);
|
|
48
43
|
if (filesToCommit.length === 0) {
|
|
49
|
-
|
|
44
|
+
outro(chalk.yellow('âšī¸ No files to commit after staging process.'));
|
|
50
45
|
process.exit(0);
|
|
51
46
|
}
|
|
52
47
|
// 6. Handle commit message creation
|
|
53
|
-
const commitMessage = yield
|
|
48
|
+
const commitMessage = yield handleCommitMessage(filesToCommit);
|
|
54
49
|
// 7. Perform the commit
|
|
55
|
-
const commitSuccess = yield
|
|
50
|
+
const commitSuccess = yield performCommit(commitMessage);
|
|
56
51
|
if (!commitSuccess) {
|
|
57
52
|
process.exit(1);
|
|
58
53
|
}
|
|
59
54
|
// 8. Handle push to remote
|
|
60
|
-
yield
|
|
61
|
-
|
|
55
|
+
yield handlePushToRemote();
|
|
56
|
+
outro(chalk.green('đ All done!'));
|
|
62
57
|
});
|
|
63
58
|
}
|
|
64
|
-
(
|
|
59
|
+
start(main);
|
|
65
60
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,MAAM,iCAAiC,CAAC;AAEpD,SAAe,IAAI;;QACjB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE1C,+CAA+C;QAC/C,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,oCAAoC;QACpC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhF,4BAA4B;QAC5B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,uCAAuC;QACvC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEjC,mCAAmC;QACnC,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,oCAAoC;QACpC,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE/D,wBAAwB;QACxB,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;QAEzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,2BAA2B;QAC3B,MAAM,kBAAkB,EAAE,CAAC;QAE3B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IACrC,CAAC;CAAA;AAED,KAAK,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GitStatus } from './types/types';
|
|
1
|
+
import { GitStatus } from './types/types.js';
|
|
2
2
|
export declare function checkGitStatus(): GitStatus;
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.checkGitStatus = checkGitStatus;
|
|
4
|
-
const child_process_1 = require("child_process");
|
|
5
|
-
const gitCommand_1 = require("./gitCommand");
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
import { gitCommand } from './gitCommand.js';
|
|
6
3
|
// Enhanced function to check git repository status
|
|
7
|
-
function checkGitStatus() {
|
|
4
|
+
export function checkGitStatus() {
|
|
8
5
|
// Step 1: Check if Git is installed
|
|
9
6
|
try {
|
|
10
|
-
|
|
7
|
+
execSync('git --version', { stdio: 'ignore' });
|
|
11
8
|
}
|
|
12
9
|
catch (_a) {
|
|
13
10
|
return {
|
|
@@ -16,15 +13,15 @@ function checkGitStatus() {
|
|
|
16
13
|
};
|
|
17
14
|
}
|
|
18
15
|
// Step 2: Check if inside a Git repository
|
|
19
|
-
if (!
|
|
16
|
+
if (!gitCommand('rev-parse --git-dir')) {
|
|
20
17
|
return {
|
|
21
18
|
valid: false,
|
|
22
19
|
reason: 'Not in a Git repository',
|
|
23
20
|
};
|
|
24
21
|
}
|
|
25
22
|
// Step 3: Check if Git user config is set
|
|
26
|
-
const userName =
|
|
27
|
-
const userEmail =
|
|
23
|
+
const userName = gitCommand('config user.name');
|
|
24
|
+
const userEmail = gitCommand('config user.email');
|
|
28
25
|
if (!userName || !userEmail) {
|
|
29
26
|
return {
|
|
30
27
|
valid: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkGitStatus.js","sourceRoot":"","sources":["../../src/utils/checkGitStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkGitStatus.js","sourceRoot":"","sources":["../../src/utils/checkGitStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,mDAAmD;AACnD,MAAM,UAAU,cAAc;IAC5B,oCAAoC;IACpC,IAAI,CAAC;QACH,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,qCAAqC;SAC9C,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,yBAAyB;SAClC,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAElD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,gIAAgI;SACzI,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FileChange } from './types/types';
|
|
1
|
+
import { FileChange } from './types/types.js';
|
|
2
2
|
export declare function handleCommitMessage(filesToCommit: FileChange[]): Promise<string>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,25 +7,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const prompts_1 = require("@clack/prompts");
|
|
17
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
-
const generateCommitMessage_1 = require("./generateCommitMessage");
|
|
19
|
-
const formatFileStatus_1 = require("./formatFileStatus");
|
|
20
|
-
function handleCommitMessage(filesToCommit) {
|
|
10
|
+
import { select, text, cancel, isCancel } from '@clack/prompts';
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
import { generateCommitMessage } from './generateCommitMessage.js';
|
|
13
|
+
import { formatFileStatus } from './formatFileStatus.js';
|
|
14
|
+
export function handleCommitMessage(filesToCommit) {
|
|
21
15
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
16
|
// Display files to commit
|
|
23
17
|
displayFilesToCommit(filesToCommit);
|
|
24
18
|
// Generate automatic commit message
|
|
25
|
-
const generatedMessage =
|
|
19
|
+
const generatedMessage = generateCommitMessage(filesToCommit);
|
|
26
20
|
// Get user preference for commit message
|
|
27
21
|
const messageOption = yield getMessageOption(generatedMessage);
|
|
28
|
-
if (
|
|
29
|
-
|
|
22
|
+
if (isCancel(messageOption)) {
|
|
23
|
+
cancel('Operation cancelled');
|
|
30
24
|
process.exit(0);
|
|
31
25
|
}
|
|
32
26
|
// Handle different message options
|
|
@@ -41,12 +35,12 @@ function handleCommitMessage(filesToCommit) {
|
|
|
41
35
|
});
|
|
42
36
|
}
|
|
43
37
|
function displayFilesToCommit(filesToCommit) {
|
|
44
|
-
console.log(
|
|
45
|
-
filesToCommit.forEach(({ status, file }) => console.log(` ${
|
|
38
|
+
console.log(chalk.bold('\nđ Files to commit:'));
|
|
39
|
+
filesToCommit.forEach(({ status, file }) => console.log(` ${formatFileStatus(status)} ${file}`));
|
|
46
40
|
}
|
|
47
41
|
function getMessageOption(generatedMessage) {
|
|
48
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
return yield
|
|
43
|
+
return yield select({
|
|
50
44
|
message: 'How would you like to create the commit message?',
|
|
51
45
|
options: [
|
|
52
46
|
{ value: 'generated', label: `Use generated: "${generatedMessage}"` },
|
|
@@ -58,13 +52,13 @@ function getMessageOption(generatedMessage) {
|
|
|
58
52
|
}
|
|
59
53
|
function getCustomMessage() {
|
|
60
54
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
const commitMessage = yield
|
|
55
|
+
const commitMessage = yield text({
|
|
62
56
|
message: 'Enter commit message:',
|
|
63
57
|
placeholder: 'feat: add new feature',
|
|
64
58
|
validate: value => !value.trim() ? 'Commit message is required' : undefined
|
|
65
59
|
});
|
|
66
|
-
if (
|
|
67
|
-
|
|
60
|
+
if (isCancel(commitMessage)) {
|
|
61
|
+
cancel('Operation cancelled');
|
|
68
62
|
process.exit(0);
|
|
69
63
|
}
|
|
70
64
|
return commitMessage;
|
|
@@ -72,13 +66,13 @@ function getCustomMessage() {
|
|
|
72
66
|
}
|
|
73
67
|
function getEditedMessage(generatedMessage) {
|
|
74
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
const commitMessage = yield
|
|
69
|
+
const commitMessage = yield text({
|
|
76
70
|
message: 'Edit commit message:',
|
|
77
71
|
initialValue: generatedMessage,
|
|
78
72
|
validate: value => !value.trim() ? 'Commit message is required' : undefined
|
|
79
73
|
});
|
|
80
|
-
if (
|
|
81
|
-
|
|
74
|
+
if (isCancel(commitMessage)) {
|
|
75
|
+
cancel('Operation cancelled');
|
|
82
76
|
process.exit(0);
|
|
83
77
|
}
|
|
84
78
|
return commitMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitMessage.js","sourceRoot":"","sources":["../../src/utils/commitMessage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commitMessage.js","sourceRoot":"","sources":["../../src/utils/commitMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GitChanges } from './types/types';
|
|
1
|
+
import { GitChanges } from './types/types.js';
|
|
2
2
|
export declare function displayRepositoryStatus(changes: GitChanges): void;
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.displayRepositoryStatus = displayRepositoryStatus;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const formatFileStatus_1 = require("./formatFileStatus");
|
|
9
|
-
function displayRepositoryStatus(changes) {
|
|
10
|
-
console.log(chalk_1.default.bold('\nđ Repository Status:'));
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { formatFileStatus } from './formatFileStatus.js';
|
|
3
|
+
export function displayRepositoryStatus(changes) {
|
|
4
|
+
console.log(chalk.bold('\nđ Repository Status:'));
|
|
11
5
|
if (changes.staged.length > 0) {
|
|
12
|
-
console.log(
|
|
13
|
-
changes.staged.forEach(({ status, file }) => console.log(` ${
|
|
6
|
+
console.log(chalk.green('\nStaged files:'));
|
|
7
|
+
changes.staged.forEach(({ status, file }) => console.log(` ${formatFileStatus(status)} ${file}`));
|
|
14
8
|
}
|
|
15
9
|
if (changes.unstaged.length > 0) {
|
|
16
|
-
console.log(
|
|
17
|
-
changes.unstaged.forEach(({ status, file }) => console.log(` ${
|
|
10
|
+
console.log(chalk.yellow('\nUnstaged files:'));
|
|
11
|
+
changes.unstaged.forEach(({ status, file }) => console.log(` ${formatFileStatus(status)} ${file}`));
|
|
18
12
|
}
|
|
19
13
|
if (changes.untracked.length > 0) {
|
|
20
|
-
console.log(
|
|
21
|
-
changes.untracked.forEach(({ status, file }) => console.log(` ${
|
|
14
|
+
console.log(chalk.cyan('\nUntracked files:'));
|
|
15
|
+
changes.untracked.forEach(({ status, file }) => console.log(` ${formatFileStatus(status)} ${file}`));
|
|
22
16
|
}
|
|
23
17
|
}
|
|
24
18
|
//# sourceMappingURL=displayStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displayStatus.js","sourceRoot":"","sources":["../../src/utils/displayStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"displayStatus.js","sourceRoot":"","sources":["../../src/utils/displayStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,uBAAuB,CAAC,OAAmB;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CACrD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GitChanges, FileChange } from './types/types';
|
|
1
|
+
import { GitChanges, FileChange } from './types/types.js';
|
|
2
2
|
export declare function handleFileStaging(changes: GitChanges): Promise<FileChange[]>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,17 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
-
const gitCommand_1 = require("./gitCommand");
|
|
19
|
-
const getFileChanges_1 = require("./getFileChanges");
|
|
20
|
-
const formatFileStatus_1 = require("./formatFileStatus");
|
|
21
|
-
function handleFileStaging(changes) {
|
|
10
|
+
import { select, multiselect, spinner, cancel, isCancel } from '@clack/prompts';
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
import { gitCommand } from './gitCommand.js';
|
|
13
|
+
import { getChanges } from './getFileChanges.js';
|
|
14
|
+
import { formatFileStatus } from './formatFileStatus.js';
|
|
15
|
+
export function handleFileStaging(changes) {
|
|
22
16
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
17
|
let filesToCommit = changes.staged;
|
|
24
18
|
// If files are already staged, return them
|
|
@@ -26,7 +20,7 @@ function handleFileStaging(changes) {
|
|
|
26
20
|
return filesToCommit;
|
|
27
21
|
}
|
|
28
22
|
// Handle unstaged files
|
|
29
|
-
const stageOption = yield
|
|
23
|
+
const stageOption = yield select({
|
|
30
24
|
message: 'No files are staged. What would you like to do?',
|
|
31
25
|
options: [
|
|
32
26
|
{ value: 'all', label: 'Stage all changes' },
|
|
@@ -34,8 +28,8 @@ function handleFileStaging(changes) {
|
|
|
34
28
|
{ value: 'cancel', label: 'Cancel' }
|
|
35
29
|
]
|
|
36
30
|
});
|
|
37
|
-
if (
|
|
38
|
-
|
|
31
|
+
if (isCancel(stageOption) || stageOption === 'cancel') {
|
|
32
|
+
cancel('Operation cancelled');
|
|
39
33
|
process.exit(0);
|
|
40
34
|
}
|
|
41
35
|
if (stageOption === 'all') {
|
|
@@ -49,50 +43,50 @@ function handleFileStaging(changes) {
|
|
|
49
43
|
}
|
|
50
44
|
function stageAllFiles() {
|
|
51
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const s =
|
|
46
|
+
const s = spinner();
|
|
53
47
|
s.start('Staging all files...');
|
|
54
|
-
const result =
|
|
48
|
+
const result = gitCommand('add .');
|
|
55
49
|
if (result === null) {
|
|
56
50
|
s.stop('â Failed to stage files');
|
|
57
|
-
|
|
51
|
+
cancel('Failed to stage files');
|
|
58
52
|
process.exit(1);
|
|
59
53
|
}
|
|
60
54
|
s.stop('All files staged');
|
|
61
|
-
return
|
|
55
|
+
return getChanges().staged;
|
|
62
56
|
});
|
|
63
57
|
}
|
|
64
58
|
function stageSelectedFiles(changes) {
|
|
65
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
60
|
const unstaged = [...changes.unstaged, ...changes.untracked];
|
|
67
|
-
const selectedFiles = yield
|
|
61
|
+
const selectedFiles = yield multiselect({
|
|
68
62
|
message: 'Select files to stage:',
|
|
69
63
|
options: unstaged.map(({ status, file }) => ({
|
|
70
64
|
value: file,
|
|
71
|
-
label: `${
|
|
65
|
+
label: `${formatFileStatus(status)} ${file}`
|
|
72
66
|
})),
|
|
73
67
|
required: true
|
|
74
68
|
});
|
|
75
|
-
if (
|
|
76
|
-
|
|
69
|
+
if (isCancel(selectedFiles)) {
|
|
70
|
+
cancel('Operation cancelled');
|
|
77
71
|
process.exit(0);
|
|
78
72
|
}
|
|
79
|
-
const s =
|
|
73
|
+
const s = spinner();
|
|
80
74
|
s.start('Staging selected files...');
|
|
81
75
|
let stagingFailed = false;
|
|
82
76
|
selectedFiles.forEach(file => {
|
|
83
|
-
const result =
|
|
77
|
+
const result = gitCommand(`add "${file}"`);
|
|
84
78
|
if (result === null) {
|
|
85
79
|
stagingFailed = true;
|
|
86
80
|
}
|
|
87
81
|
});
|
|
88
82
|
if (stagingFailed) {
|
|
89
83
|
s.stop('â Some files failed to stage');
|
|
90
|
-
console.log(
|
|
84
|
+
console.log(chalk.yellow('Some files may not have been staged properly.'));
|
|
91
85
|
}
|
|
92
86
|
else {
|
|
93
87
|
s.stop('Files staged');
|
|
94
88
|
}
|
|
95
|
-
return
|
|
89
|
+
return getChanges().staged;
|
|
96
90
|
});
|
|
97
91
|
}
|
|
98
92
|
//# sourceMappingURL=fileStaging.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileStaging.js","sourceRoot":"","sources":["../../src/utils/fileStaging.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fileStaging.js","sourceRoot":"","sources":["../../src/utils/fileStaging.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.formatFileStatus = formatFileStatus;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
function formatFileStatus(status) {
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export function formatFileStatus(status) {
|
|
9
3
|
switch (status) {
|
|
10
4
|
case 'A':
|
|
11
|
-
return
|
|
5
|
+
return chalk.green('+ added');
|
|
12
6
|
case 'M':
|
|
13
|
-
return
|
|
7
|
+
return chalk.yellow('~ modified');
|
|
14
8
|
case 'D':
|
|
15
|
-
return
|
|
9
|
+
return chalk.red('- deleted');
|
|
16
10
|
case 'R':
|
|
17
|
-
return
|
|
11
|
+
return chalk.blue('â renamed');
|
|
18
12
|
case '??':
|
|
19
|
-
return
|
|
13
|
+
return chalk.cyan('? untracked');
|
|
20
14
|
default:
|
|
21
|
-
return
|
|
15
|
+
return chalk.gray(status);
|
|
22
16
|
}
|
|
23
17
|
}
|
|
24
18
|
//# sourceMappingURL=formatFileStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatFileStatus.js","sourceRoot":"","sources":["../../src/utils/formatFileStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatFileStatus.js","sourceRoot":"","sources":["../../src/utils/formatFileStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpC,KAAK,GAAG;YACN,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,KAAK,IAAI;YACP,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC;YACE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FileChange } from './types/types';
|
|
1
|
+
import { FileChange } from './types/types.js';
|
|
2
2
|
export declare function generateCommitMessage(files: FileChange[]): string;
|
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.generateCommitMessage = generateCommitMessage;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const gitCommand_1 = require("./gitCommand");
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { gitCommand } from './gitCommand.js';
|
|
9
3
|
// Generate commit message based on changes
|
|
10
|
-
function generateCommitMessage(files) {
|
|
4
|
+
export function generateCommitMessage(files) {
|
|
11
5
|
var _a, _b, _c;
|
|
12
6
|
const fileTypes = new Map();
|
|
13
7
|
const operations = { added: 0, modified: 0, deleted: 0, renamed: 0 };
|
|
14
8
|
let scope = '';
|
|
15
9
|
// Analyze files
|
|
16
10
|
for (const { status, file } of files) {
|
|
17
|
-
const ext =
|
|
11
|
+
const ext = path.extname(file);
|
|
18
12
|
fileTypes.set(ext, (fileTypes.get(ext) || 0) + 1);
|
|
19
13
|
switch (status) {
|
|
20
14
|
case 'A':
|
|
@@ -71,24 +65,24 @@ function generateCommitMessage(files) {
|
|
|
71
65
|
else if (operations.added > 0 && operations.modified === 0 && operations.deleted === 0) {
|
|
72
66
|
type = 'feat';
|
|
73
67
|
description = operations.added === 1
|
|
74
|
-
? `add ${
|
|
68
|
+
? `add ${path.basename(((_a = files.find(f => f.status === 'A')) === null || _a === void 0 ? void 0 : _a.file) || '')}`
|
|
75
69
|
: 'add new files';
|
|
76
70
|
}
|
|
77
71
|
else if (operations.deleted > 0 && operations.added === 0 && operations.modified === 0) {
|
|
78
72
|
type = 'remove';
|
|
79
73
|
description = operations.deleted === 1
|
|
80
|
-
? `remove ${
|
|
74
|
+
? `remove ${path.basename(((_b = files.find(f => f.status === 'D')) === null || _b === void 0 ? void 0 : _b.file) || '')}`
|
|
81
75
|
: 'remove files';
|
|
82
76
|
}
|
|
83
77
|
else if (operations.modified > 0) {
|
|
84
78
|
type = 'fix';
|
|
85
79
|
description = operations.modified === 1 && operations.added === 0 && operations.deleted === 0
|
|
86
|
-
? `update ${
|
|
80
|
+
? `update ${path.basename(((_c = files.find(f => f.status === 'M')) === null || _c === void 0 ? void 0 : _c.file) || '')}`
|
|
87
81
|
: 'update and improve code';
|
|
88
82
|
}
|
|
89
83
|
// Refine with diff content
|
|
90
84
|
try {
|
|
91
|
-
const diff =
|
|
85
|
+
const diff = gitCommand('diff --cached') || '';
|
|
92
86
|
if (/bug|fix|error|issue/i.test(diff)) {
|
|
93
87
|
type = 'fix';
|
|
94
88
|
description = 'resolve issues and bugs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateCommitMessage.js","sourceRoot":"","sources":["../../src/utils/generateCommitMessage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateCommitMessage.js","sourceRoot":"","sources":["../../src/utils/generateCommitMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GitChanges } from "./types/types";
|
|
1
|
+
import { GitChanges } from "./types/types.js";
|
|
2
2
|
export declare function getChanges(): GitChanges;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getChanges = getChanges;
|
|
4
|
-
const gitCommand_1 = require("./gitCommand");
|
|
1
|
+
import { gitCommand } from "./gitCommand.js";
|
|
5
2
|
// Get file changes
|
|
6
3
|
function parseGitStatus(output, defaultStatus = '') {
|
|
7
4
|
return output
|
|
@@ -15,10 +12,10 @@ function parseGitStatus(output, defaultStatus = '') {
|
|
|
15
12
|
return { status, file: fileParts.join('\t') };
|
|
16
13
|
});
|
|
17
14
|
}
|
|
18
|
-
function getChanges() {
|
|
19
|
-
const stagedOutput =
|
|
20
|
-
const unstagedOutput =
|
|
21
|
-
const untrackedOutput =
|
|
15
|
+
export function getChanges() {
|
|
16
|
+
const stagedOutput = gitCommand('diff --cached --name-status') || '';
|
|
17
|
+
const unstagedOutput = gitCommand('diff --name-status') || '';
|
|
18
|
+
const untrackedOutput = gitCommand('ls-files --others --exclude-standard') || '';
|
|
22
19
|
return {
|
|
23
20
|
staged: parseGitStatus(stagedOutput),
|
|
24
21
|
unstaged: parseGitStatus(unstagedOutput),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileChanges.js","sourceRoot":"","sources":["../../src/utils/getFileChanges.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFileChanges.js","sourceRoot":"","sources":["../../src/utils/getFileChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,mBAAmB;AACnB,SAAS,cAAc,CAAC,MAAc,EAAE,aAAa,GAAG,EAAE;IACxD,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,YAAY,GAAG,UAAU,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC;IACrE,MAAM,cAAc,GAAG,UAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAC9D,MAAM,eAAe,GAAG,UAAU,CAAC,sCAAsC,CAAC,IAAI,EAAE,CAAC;IAEjF,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC;QACpC,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC;QACxC,SAAS,EAAE,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC;KACjD,CAAC;AACJ,CAAC"}
|