Compare commits

...

19 Commits

Author SHA1 Message Date
di-sukharev
acdf464d2e 0.0.15 2023-03-06 21:34:03 +08:00
di-sukharev
3705a66ada 0.0.14 2023-03-06 21:33:06 +08:00
di-sukharev
bdb8da49b7 * 🚀 chore(cli.ts): change file mode from 100644 to 100755
This commit changes the file mode of cli.ts from 100644 to 100755. This change allows the file to be executable.
2023-03-06 21:33:00 +08:00
di-sukharev
6e896ec428 * 🐛 fix(githook.ts): fix HOOK_PATH import path
The import path for HOOK_PATH was incorrect, causing the file to not be found. The path has been updated to correctly reference the cli.cjs file.
2023-03-06 21:07:03 +08:00
di-sukharev
9ce961ccc0 0.0.13 2023-03-06 21:03:28 +08:00
di-sukharev
1a2f6416cc * 🐛 fix(githook.ts): fix file path in URL constructor
The file path in the URL constructor was incorrect, causing the file to not be found. The file path has been corrected to point to the correct location.
2023-03-06 21:03:25 +08:00
di-sukharev
4fa438ab17 0.0.12 2023-03-06 21:00:50 +08:00
di-sukharev
4ad7a5f779 * 🐛 fix(githook.ts): fix HOOK_PATH import path
* 📝 docs(TODO.md): add tasks for adding tests and making hook work
The HOOK_PATH import path was incorrect and has been fixed. The TODO list has been updated to include tasks for adding tests and making the hook work.
2023-03-06 21:00:41 +08:00
di-sukharev
5c0b31600f 0.0.11 2023-03-06 19:27:34 +08:00
di-sukharev
d785b821ea * 📝 docs(README.md): comment out Git hook section
The Git hook section has been commented out as it is not currently relevant to the project.
2023-03-06 19:27:19 +08:00
di-sukharev
c50c416dfc 0.0.10 2023-03-06 19:22:34 +08:00
di-sukharev
f8720ff089 0.0.9 2023-03-06 19:22:14 +08:00
di-sukharev
afa5949c06 * 📦 chore(package.json): rename prepublish script to patch
The prepublish script has been renamed to patch to better reflect its purpose of incrementing the patch version of the package.
2023-03-06 19:22:11 +08:00
di-sukharev
b1ec69e4dd * 🐛 fix(githook.ts): change cli file extension from .mjs to .cjs
The file extension of the cli file was changed from .mjs to .cjs to ensure compatibility with Node.js versions that do not support ES modules.
2023-03-06 19:21:24 +08:00
di-sukharev
0061816b6a * 🐛 fix(TODO.md): add missing TODO item
* 🐛 fix(TODO.md): update existing TODO item
The first item is a fix for a missing TODO item. The second item is an update to an existing TODO item. The bundle size can be reduced by properly configuring esbuild. Additionally, small files can be batched together in a single request to further reduce the bundle size.
2023-03-06 19:20:42 +08:00
di-sukharev
352b81c6c6 * 🚀 chore(package.json): change 'publish' script to 'prepublish'
The 'publish' script has been changed to 'prepublish' to ensure that the version is updated before publishing the package. This is a best practice to ensure that the published package has the correct version number.
2023-03-06 19:09:27 +08:00
di-sukharev
430776af29 0.0.8 2023-03-06 19:09:04 +08:00
di-sukharev
c573edea97 0.0.7 2023-03-06 19:08:57 +08:00
di-sukharev
5282734583 * 🐛 fix(package.json): remove npm publish command from publish script
The npm publish command has been removed from the publish script. This is because the command should be run manually after bumping the version number.
2023-03-06 19:08:37 +08:00
6 changed files with 68 additions and 52 deletions

View File

@@ -83,7 +83,7 @@ To remove description:
opencommit config set description=false
```
## Git hook
<!-- ## Git hook
You can set opencommit as Git [`prepare-commit-msg`](https://git-scm.com/docs/githooks#_prepare_commit_msg) hook. Hook integrates with you IDE Source Control and allows you edit the message before commit.
@@ -106,7 +106,7 @@ To use the hook:
git commit
```
Or follow the process of your IDE Source Control feature, when it calls `git commit` command — OpenCommit will integrate into the flow.
Or follow the process of your IDE Source Control feature, when it calls `git commit` command — OpenCommit will integrate into the flow. -->
## Payments

View File

@@ -1,4 +1,8 @@
# TODOs
- [] [build for both mjs and cjs](https://snyk.io/blog/best-practices-create-modern-npm-package/)
- []
- [] make bundle smaller by properly configuring esbuild
- [] do // TODOs in the code
- [] batch small files in one request
- [] add tests
- [] make hook work

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "open-commit",
"version": "0.0.6",
"version": "0.0.15",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "open-commit",
"version": "0.0.6",
"version": "0.0.15",
"license": "ISC",
"dependencies": {
"@clack/prompts": "^0.6.1",

View File

@@ -1,6 +1,6 @@
{
"name": "opencommit",
"version": "0.0.6",
"version": "0.0.15",
"description": "AI generates conventional commits with mind-blowing accuracy.",
"keywords": [
"git",
@@ -37,7 +37,7 @@
"start": "node ./out/cli.cjs",
"dev": "ts-node ./src/cli.ts",
"build": "rimraf out && esbuild ./src/cli.ts --bundle --outfile=out/cli.cjs --format=cjs --platform=node",
"publish": "npm version patch && npm publish",
"patch": "npm version patch",
"lint": "eslint src --ext ts && tsc --noEmit"
},
"devDependencies": {

0
src/cli.ts Normal file → Executable file
View File

View File

@@ -19,59 +19,71 @@ export const hookCommand = command(
name: 'hook',
parameters: ['<set/unset>']
},
async (argv) => {
const HOOK_PATH = fileURLToPath(new URL('cli.mjs', import.meta.url));
(argv) => {
const HOOK_PATH = fileURLToPath(new URL('cli.cjs', import.meta.url));
try {
await assertGitRepo();
(async () => {
try {
await assertGitRepo();
const { setUnset: mode } = argv._;
const { setUnset: mode } = argv._;
if (mode === 'set') {
intro(`setting opencommit as '${HOOK_NAME}' hook`);
if (isHookExists) {
const realPath = await fs.realpath(SYMLINK_URL);
if (mode === 'set') {
intro(`setting opencommit as '${HOOK_NAME}' hook`);
if (realPath === HOOK_PATH)
return outro(`opencommit is already set as '${HOOK_NAME}'`);
if (isHookExists) {
let realPath;
try {
realPath = await fs.realpath(SYMLINK_URL);
console.log(123, { realPath });
} catch (error) {
console.log(321, { realPath });
outro(error as string);
realPath = null;
}
throw new Error(
`Different ${HOOK_NAME} is already set. Remove it before setting opencommit as '${HOOK_NAME}' hook.`
);
if (realPath === HOOK_PATH)
return outro(`opencommit is already set as '${HOOK_NAME}'`);
throw new Error(
`Different ${HOOK_NAME} is already set. Remove it before setting opencommit as '${HOOK_NAME}' hook.`
);
}
await fs.mkdir(path.dirname(SYMLINK_URL), { recursive: true });
await fs.symlink(HOOK_PATH, SYMLINK_URL, 'file');
await fs.chmod(SYMLINK_URL, 0o755);
return outro(`${chalk.green('✔')} Hook set`);
}
await fs.mkdir(path.dirname(SYMLINK_URL), { recursive: true });
await fs.symlink(HOOK_PATH, SYMLINK_URL, 'file');
await fs.chmod(SYMLINK_URL, 0o755);
if (mode === 'unset') {
intro(`unsetting opencommit as '${HOOK_NAME}' hook`);
return outro(`${chalk.green('✔')} Hook set`);
if (!isHookExists) {
return outro(
`opencommit wasn't previously set as '${HOOK_NAME}' hook, nothing to remove`
);
}
const realpath = await fs.realpath(SYMLINK_URL);
if (realpath !== HOOK_PATH) {
return outro(
`opencommit wasn't previously set as '${HOOK_NAME}' hook, but different hook was, if you want to remove it — do it manually`
);
}
await fs.rm(SYMLINK_URL);
return outro(`${chalk.green('✔')} Hook is removed`);
}
throw new Error(
`unsupported mode: ${mode}. Supported modes are: 'set' or 'unset'`
);
} catch (error) {
outro(`${chalk.red('✖')} ${error}`);
process.exit(1);
}
if (mode === 'unset') {
intro(`unsetting opencommit as '${HOOK_NAME}' hook`);
if (!isHookExists) {
return outro(
`opencommit wasn't previously set as '${HOOK_NAME}' hook, nothing to remove`
);
}
const realpath = await fs.realpath(SYMLINK_URL);
if (realpath !== HOOK_PATH) {
return outro(
`opencommit wasn't previously set as '${HOOK_NAME}' hook, but different hook was, if you want to remove it — do it manually`
);
}
await fs.rm(SYMLINK_URL);
return outro(`${chalk.green('✔')} Hook is removed`);
}
throw new Error(
`unsupported mode: ${mode}. Supported modes are: 'set' or 'unset'`
);
} catch (error) {
outro(`${chalk.red('✖')} ${error}`);
process.exit(1);
}
})();
}
);