Skip to content

Commit

Permalink
feat: πŸ§‘β€πŸ’» add input-max-length
Browse files Browse the repository at this point in the history
and wrap body to 80 chars
  • Loading branch information
thierrymichel committed Sep 10, 2024
1 parent d77c8a3 commit d8729d5
Show file tree
Hide file tree
Showing 3 changed files with 130 additions and 25 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"import-from": "^4.0.0",
"inquirer": "^8.2.0",
"inquirer-autocomplete-prompt": "^1.4.0",
"inquirer-maxlength-input-prompt": "^1.0.2",
"lodash.map": "^4.6.0",
"longest": "^2.0.1",
"node-fetch": "^3.0.0",
Expand Down
38 changes: 22 additions & 16 deletions src/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import fs from 'fs'
import path from 'path'
import { execSync } from 'child_process'

import autocomplete from 'inquirer-autocomplete-prompt'
import autocompletePrompt from 'inquirer-autocomplete-prompt'
import maxLengthInputPrompt from 'inquirer-maxlength-input-prompt'
import fuzzy from 'fuzzy'
import importFrom from 'import-from'
import longest from 'longest'
Expand Down Expand Up @@ -54,13 +55,13 @@ const defaultConfig = {
* @param {number} length max length
* @returns {string} truncated string
*/
function truncate(str, length) {
if (str.length <= length) {
return str
}
// function truncate(str, length) {
// if (str.length <= length) {
// return str
// }

return `${str.slice(0, length - 1)}…`
}
// return `${str.slice(0, length - 1)}…`
// }

/**
* Load configuration form package.json or .czrc
Expand Down Expand Up @@ -268,9 +269,10 @@ function fillPrompt(options) {
].concat(scopes),
},
{
type: 'input',
type: 'maxlength-input',
name: 'subject',
message: 'Write a short description:\n',
maxLength: 100,
},
{
type: 'input',
Expand Down Expand Up @@ -390,14 +392,17 @@ function format(answers) {

const subject = emoji ? `${emoji} ${answers.subject}` : answers.subject

// Build head line, add emoji and limit to 100
const head = `${truncate(
`${answers.type}${formatedScope}: ${subject.trim()}`,
110
)}${answers.issues ? ` [#${answers.issues}]` : ''}`
const body = answers.body ? wrap(answers.body, 120) : ''
// Build head line, add emoji (~~and limit to 100~~)
// Use 'maxlength-input' in place
// const head = `${truncate(
// `${answers.type}${formatedScope}: ${subject.trim()}`,
// 110
const head = `${`${answers.type}${formatedScope}: ${subject.trim()}`}${
answers.issues ? ` [#${answers.issues}]` : ''
}`
const body = answers.body ? wrap(answers.body, 80) : ''
const breaking = answers.breaking
? wrap(`BREAKING CHANGE: ${answers.breaking.trim()}`, 120)
? wrap(`BREAKING CHANGE: ${answers.breaking.trim()}`, 80)
: ''

return [head, body, breaking]
Expand All @@ -410,7 +415,8 @@ function format(answers) {
* Export `prompter` method for `commitizen`.
*/
export function prompter(cz, commit) {
cz.prompt.registerPrompt('autocomplete', autocomplete)
cz.prompt.registerPrompt('autocomplete', autocompletePrompt)
cz.prompt.registerPrompt('maxlength-input', maxLengthInputPrompt)
loadConfig()
.then(loadOptions)
.then(fillPrompt)
Expand Down
116 changes: 107 additions & 9 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1305,7 +1305,7 @@ __metadata:
languageName: node
linkType: hard

"ansi-escapes@npm:^3.2.0":
"ansi-escapes@npm:^3.0.0, ansi-escapes@npm:^3.2.0":
version: 3.2.0
resolution: "ansi-escapes@npm:3.2.0"
checksum: 0f94695b677ea742f7f1eed961f7fd8d05670f744c6ad1f8f635362f6681dcfbc1575cb05b43abc7bb6d67e25a75fb8c7ea8f2a57330eb2c76b33f18cb2cef0a
Expand Down Expand Up @@ -1876,7 +1876,7 @@ __metadata:
languageName: node
linkType: hard

"chalk@npm:^2.0.0, chalk@npm:^2.0.1, chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2":
"chalk@npm:^2.0.0, chalk@npm:^2.0.1, chalk@npm:^2.3.1, chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
dependencies:
Expand Down Expand Up @@ -1904,6 +1904,13 @@ __metadata:
languageName: node
linkType: hard

"chardet@npm:^0.4.0":
version: 0.4.2
resolution: "chardet@npm:0.4.2"
checksum: fec7a41f78b9c09ed29c44990a9a0fce7a946ab81298231045db5786719fef664cd9ff4217dd7159a9c35c81f32cede04619c45f9a96965ca2c1d8883f8cf433
languageName: node
linkType: hard

"chardet@npm:^0.7.0":
version: 0.7.0
resolution: "chardet@npm:0.7.0"
Expand Down Expand Up @@ -2209,15 +2216,16 @@ __metadata:
languageName: node
linkType: hard

"commitlint-config-ccgls@npm:1.3.0":
version: 1.3.0
resolution: "commitlint-config-ccgls@npm:1.3.0"
"commitlint-config-ccgls@npm:1.4.9":
version: 1.4.9
resolution: "commitlint-config-ccgls@npm:1.4.9"
dependencies:
"@commitlint/config-conventional": ^14.1.0
"@lerna/project": ^4.0.0
emoji-regex: ^10.2.1
import-from: ^4.0.0
read-pkg-up: ^7.0.1
checksum: 0801f4a0e9ef495241ca7161a9ba6985205fce2c9e52746949a541a531deecf59272fa361bc24e5034d57551e2cf5000980ffea41d49edda1aca38ae8a2e5742
checksum: a376d2de63ad9dd0f091b53df2abb27daebd6af240b3d624d3aa4794712c004feab19402550fe266304ae676d9391d28279261cff3042c6e9413b1ac678e5a42
languageName: node
linkType: hard

Expand Down Expand Up @@ -2544,7 +2552,7 @@ __metadata:
"@semantic-release/changelog": ^6.0.1
"@semantic-release/git": ^10.0.1
commitizen: ^4.2.4
commitlint-config-ccgls: 1.3.0
commitlint-config-ccgls: 1.4.9
conventional-commit-types: ^3.0.0
coveralls: ^3.1.1
cross-env: ^7.0.3
Expand All @@ -2557,6 +2565,7 @@ __metadata:
import-from: ^4.0.0
inquirer: ^8.2.0
inquirer-autocomplete-prompt: ^1.4.0
inquirer-maxlength-input-prompt: ^1.0.2
jasmine: ^3.10.0
jasmine-console-reporter: ^3.1.0
jasmine-node: ^3.0.0
Expand Down Expand Up @@ -2882,6 +2891,13 @@ __metadata:
languageName: node
linkType: hard

"emoji-regex@npm:^10.2.1":
version: 10.4.0
resolution: "emoji-regex@npm:10.4.0"
checksum: a6d9a0e454829a52e664e049847776ee1fff5646617b06cd87de7c03ce1dfcce4102a3b154d5e9c8e90f8125bc120fc1fe114d523dddf60a8a161f26c72658d2
languageName: node
linkType: hard

"emoji-regex@npm:^7.0.1":
version: 7.0.3
resolution: "emoji-regex@npm:7.0.3"
Expand Down Expand Up @@ -3390,6 +3406,17 @@ __metadata:
languageName: node
linkType: hard

"external-editor@npm:^2.1.0":
version: 2.2.0
resolution: "external-editor@npm:2.2.0"
dependencies:
chardet: ^0.4.0
iconv-lite: ^0.4.17
tmp: ^0.0.33
checksum: 5e164e033ed93fcbfe311b5760b98e292685ea58e6e62737365de2d625d0043d60b36c5b537795c496b520db568d9e5f5109994e869ca0d9b6b443aacf533efe
languageName: node
linkType: hard

"external-editor@npm:^3.0.3":
version: 3.1.0
resolution: "external-editor@npm:3.1.0"
Expand Down Expand Up @@ -4285,7 +4312,7 @@ __metadata:
languageName: node
linkType: hard

"iconv-lite@npm:^0.4.24":
"iconv-lite@npm:^0.4.17, iconv-lite@npm:^0.4.24":
version: 0.4.24
resolution: "iconv-lite@npm:0.4.24"
dependencies:
Expand Down Expand Up @@ -4434,6 +4461,19 @@ __metadata:
languageName: node
linkType: hard

"inquirer-maxlength-input-prompt@npm:^1.0.2":
version: 1.0.2
resolution: "inquirer-maxlength-input-prompt@npm:1.0.2"
dependencies:
chalk: ^2.3.1
inquirer: ^5.1.0
lodash.invoke: ^4.5.2
lodash.isfunction: ^3.0.9
lodash.partialright: ^4.2.1
checksum: 1287ba398c45d0aeedca3da997802bc09cb9f1b67acb46c035b5c011ee62d3d081e28f91d19635bcad34c2cfb5e3cf259cafa05c1697fb320cbf10f5f25d84f2
languageName: node
linkType: hard

"inquirer@npm:6.5.2":
version: 6.5.2
resolution: "inquirer@npm:6.5.2"
Expand All @@ -4455,6 +4495,27 @@ __metadata:
languageName: node
linkType: hard

"inquirer@npm:^5.1.0":
version: 5.2.0
resolution: "inquirer@npm:5.2.0"
dependencies:
ansi-escapes: ^3.0.0
chalk: ^2.0.0
cli-cursor: ^2.1.0
cli-width: ^2.0.0
external-editor: ^2.1.0
figures: ^2.0.0
lodash: ^4.3.0
mute-stream: 0.0.7
run-async: ^2.2.0
rxjs: ^5.5.2
string-width: ^2.1.0
strip-ansi: ^4.0.0
through: ^2.3.6
checksum: 75632c562d5f5d64002a275e7824ec235f3a640310967800891fd9580434ec124ab3db0a5fedf33fdfeced198c9ce4ae1a6452d3f817aa7bb4cd6798d31ac21a
languageName: node
linkType: hard

"inquirer@npm:^8.2.0":
version: 8.2.1
resolution: "inquirer@npm:8.2.1"
Expand Down Expand Up @@ -5402,6 +5463,20 @@ __metadata:
languageName: node
linkType: hard

"lodash.invoke@npm:^4.5.2":
version: 4.5.2
resolution: "lodash.invoke@npm:4.5.2"
checksum: 21c01ab8177e7d8e5c304e396d7f259d382a7307404c2e83ed7ffd7f7daf636f66ebe2cf187f92dcf26ad47d60b8ba4181145f434bae2c4fad2ff9ec18eed27a
languageName: node
linkType: hard

"lodash.isfunction@npm:^3.0.9":
version: 3.0.9
resolution: "lodash.isfunction@npm:3.0.9"
checksum: 99e54c34b1e8a9ba75c034deb39cedbd2aca7af685815e67a2a8ec4f73ec9748cda6ebee5a07d7de4b938e90d421fd280e9c385cc190f903ac217ac8aff30314
languageName: node
linkType: hard

"lodash.ismatch@npm:^4.4.0":
version: 4.4.0
resolution: "lodash.ismatch@npm:4.4.0"
Expand Down Expand Up @@ -5437,14 +5512,21 @@ __metadata:
languageName: node
linkType: hard

"lodash.partialright@npm:^4.2.1":
version: 4.2.1
resolution: "lodash.partialright@npm:4.2.1"
checksum: cfae6034743d50280483eb62a76d263ec70ed5d9da3e4a8236ddb2c964280119cf54768bd6550e50e68169340c0aa7ce2e60bd9a0c9d065f8602e92c4b85ae74
languageName: node
linkType: hard

"lodash.uniqby@npm:^4.7.0":
version: 4.7.0
resolution: "lodash.uniqby@npm:4.7.0"
checksum: 659264545a95726d1493123345aad8cbf56e17810fa9a0b029852c6d42bc80517696af09d99b23bef1845d10d95e01b8b4a1da578f22aeba7a30d3e0022a4938
languageName: node
linkType: hard

"lodash@npm:^4.17.12, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.5.1, lodash@npm:~4.17.10":
"lodash@npm:^4.17.12, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.3.0, lodash@npm:^4.5.1, lodash@npm:~4.17.10":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
Expand Down Expand Up @@ -7665,6 +7747,15 @@ resolve@^1.10.0:
languageName: node
linkType: hard

"rxjs@npm:^5.5.2":
version: 5.5.12
resolution: "rxjs@npm:5.5.12"
dependencies:
symbol-observable: 1.0.1
checksum: 3c2522402b913c3aa04514cd34e1b290b2a781a2fd6b0e92ac2746eee411aacc1c335716b51b83869075b077df4a6b973831cb54d40d528b42f8f8ad26ffb77c
languageName: node
linkType: hard

"rxjs@npm:^6.4.0, rxjs@npm:^6.6.2":
version: 6.6.7
resolution: "rxjs@npm:6.6.7"
Expand Down Expand Up @@ -8387,6 +8478,13 @@ resolve@^1.10.0:
languageName: node
linkType: hard

"symbol-observable@npm:1.0.1":
version: 1.0.1
resolution: "symbol-observable@npm:1.0.1"
checksum: 8e8a4591f4ba4ec82e7c1ba6b0e695331e43572337b87fda06d183f445539f05d1ab9fe177e162c13dd74dbe1374bb96451698157d97ad417c26f7e46e7053be
languageName: node
linkType: hard

"tar@npm:^6.1.0, tar@npm:^6.1.11, tar@npm:^6.1.2":
version: 6.1.11
resolution: "tar@npm:6.1.11"
Expand Down

0 comments on commit d8729d5

Please sign in to comment.