From e9d3c5e293a5a24d94c5ea77ce161a039cb1a007 Mon Sep 17 00:00:00 2001 From: Olivers Vitins Date: Sat, 19 Aug 2023 20:18:40 +0300 Subject: [PATCH] fix: incorrect config parsing --- .rczrc | 1 + README.md | 38 ++++++++++++++++++++++++++++++++++++++ src/index.ts | 14 ++++++++------ src/types.ts | 2 +- 4 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 .rczrc create mode 100644 README.md diff --git a/.rczrc b/.rczrc new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/.rczrc @@ -0,0 +1 @@ +{} diff --git a/README.md b/README.md new file mode 100644 index 0000000..8057ffa --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# rcz + +Resultium commit standardization library + +## Installation + +1. Set up @resultium registry in an .npmrc file in your home directory with following content: + ``` + @resultium:registry=https://git.resultium.net/api/packages/technology/npm/ + ``` +2. Install the package using npm + ``` + npm install -g @resultium/rcz + ``` + +## Getting started + +1. Make changes to your git initialized project +2. Run `rcz` in the root directory +3. Answer all the questions +4. Push to remote + +## Configuration + +You can create an `.rczrc` file in your root directory and specify available scopes and commit types + +```json +{ + "scopes": ["forms"], + "types": [ + { + "label": "chore", + "value": "chore", + "hint": "a routine action" + } + ] +} +``` diff --git a/src/index.ts b/src/index.ts index 725094f..7f14120 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,9 +16,11 @@ import simpleGit from "simple-git"; const GetConfig = async () => { if (fs.existsSync(path.join(process.cwd(), ".rczrc"))) { - return (await fs.promises.readFile( - path.join(process.cwd(), ".rczrc") - )) as Config; + return JSON.parse( + ( + await fs.promises.readFile(path.join(process.cwd(), ".rczrc")) + ).toString() + ) as Config; } else { return null; } @@ -46,7 +48,7 @@ const GetConfig = async () => { const type: string | symbol = await select({ message: "Choose a commit type", - options: [ + options: config?.types || [ { label: "feat", value: "feat", @@ -93,7 +95,7 @@ const GetConfig = async () => { const scope: string | symbol = await text({ message: "Input a scope (e.g. router, forms, core) or leave empty", validate: (value) => { - if (config?.scopes) { + if (config?.scopes && value) { if (!config?.scopes.includes(value)) return "This scope is not allowed by local configuration"; } @@ -120,7 +122,7 @@ const GetConfig = async () => { } const body = await text({ - message: `Briefly describe made changes in imperative tense, recommended length 100, can be left empty`, + message: `Insert a commit body, recommended length 100, can be left empty`, }); if (isCancel(body)) { diff --git a/src/types.ts b/src/types.ts index 88aa539..e8961bb 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,5 +1,5 @@ export interface Config { - commitTypes?: Array; + types?: Array; scopes?: Array; }