citty 0.1.5 → 0.1.6
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.cjs +21 -17
- package/dist/index.mjs +21 -17
- package/package.json +9 -9
package/dist/index.cjs
CHANGED
|
@@ -43,18 +43,18 @@ function isUppercase(char = "") {
|
|
|
43
43
|
if (NUMBER_CHAR_RE.test(char)) {
|
|
44
44
|
return void 0;
|
|
45
45
|
}
|
|
46
|
-
return char.
|
|
46
|
+
return char !== char.toLowerCase();
|
|
47
47
|
}
|
|
48
|
-
function splitByCase(
|
|
48
|
+
function splitByCase(str, separators) {
|
|
49
49
|
const splitters = separators ?? STR_SPLITTERS;
|
|
50
50
|
const parts = [];
|
|
51
|
-
if (!
|
|
51
|
+
if (!str || typeof str !== "string") {
|
|
52
52
|
return parts;
|
|
53
53
|
}
|
|
54
54
|
let buff = "";
|
|
55
55
|
let previousUpper;
|
|
56
56
|
let previousSplitter;
|
|
57
|
-
for (const char of
|
|
57
|
+
for (const char of str) {
|
|
58
58
|
const isSplitter = splitters.includes(char);
|
|
59
59
|
if (isSplitter === true) {
|
|
60
60
|
parts.push(buff);
|
|
@@ -71,7 +71,7 @@ function splitByCase(string_, separators) {
|
|
|
71
71
|
continue;
|
|
72
72
|
}
|
|
73
73
|
if (previousUpper === true && isUpper === false && buff.length > 1) {
|
|
74
|
-
const lastChar = buff
|
|
74
|
+
const lastChar = buff.at(-1);
|
|
75
75
|
parts.push(buff.slice(0, Math.max(0, buff.length - 1)));
|
|
76
76
|
buff = lastChar + char;
|
|
77
77
|
previousUpper = isUpper;
|
|
@@ -85,20 +85,20 @@ function splitByCase(string_, separators) {
|
|
|
85
85
|
parts.push(buff);
|
|
86
86
|
return parts;
|
|
87
87
|
}
|
|
88
|
-
function upperFirst(
|
|
89
|
-
return
|
|
88
|
+
function upperFirst(str) {
|
|
89
|
+
return str ? str[0].toUpperCase() + str.slice(1) : "";
|
|
90
90
|
}
|
|
91
|
-
function lowerFirst(
|
|
92
|
-
return
|
|
91
|
+
function lowerFirst(str) {
|
|
92
|
+
return str ? str[0].toLowerCase() + str.slice(1) : "";
|
|
93
93
|
}
|
|
94
|
-
function pascalCase(
|
|
95
|
-
return
|
|
94
|
+
function pascalCase(str, opts) {
|
|
95
|
+
return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => upperFirst(opts?.normalize ? p.toLowerCase() : p)).join("") : "";
|
|
96
96
|
}
|
|
97
|
-
function camelCase(
|
|
98
|
-
return lowerFirst(pascalCase(
|
|
97
|
+
function camelCase(str, opts) {
|
|
98
|
+
return lowerFirst(pascalCase(str || "", opts));
|
|
99
99
|
}
|
|
100
|
-
function kebabCase(
|
|
101
|
-
return
|
|
100
|
+
function kebabCase(str, joiner) {
|
|
101
|
+
return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => p.toLowerCase()).join(joiner ?? "-") : "";
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
function toArr(any) {
|
|
@@ -365,8 +365,12 @@ async function renderUsage(cmd, parent) {
|
|
|
365
365
|
if (arg.type === "positional") {
|
|
366
366
|
const name = arg.name.toUpperCase();
|
|
367
367
|
const isRequired = arg.required !== false && arg.default === void 0;
|
|
368
|
-
const
|
|
369
|
-
posLines.push([
|
|
368
|
+
const defaultHint = arg.default ? `="${arg.default}"` : "";
|
|
369
|
+
posLines.push([
|
|
370
|
+
"`" + name + defaultHint + "`",
|
|
371
|
+
arg.description || "",
|
|
372
|
+
arg.valueHint ? `<${arg.valueHint}>` : ""
|
|
373
|
+
]);
|
|
370
374
|
usageLine.push(isRequired ? `<${name}>` : `[${name}]`);
|
|
371
375
|
} else {
|
|
372
376
|
const isRequired = arg.required === true && arg.default === void 0;
|
package/dist/index.mjs
CHANGED
|
@@ -37,18 +37,18 @@ function isUppercase(char = "") {
|
|
|
37
37
|
if (NUMBER_CHAR_RE.test(char)) {
|
|
38
38
|
return void 0;
|
|
39
39
|
}
|
|
40
|
-
return char.
|
|
40
|
+
return char !== char.toLowerCase();
|
|
41
41
|
}
|
|
42
|
-
function splitByCase(
|
|
42
|
+
function splitByCase(str, separators) {
|
|
43
43
|
const splitters = separators ?? STR_SPLITTERS;
|
|
44
44
|
const parts = [];
|
|
45
|
-
if (!
|
|
45
|
+
if (!str || typeof str !== "string") {
|
|
46
46
|
return parts;
|
|
47
47
|
}
|
|
48
48
|
let buff = "";
|
|
49
49
|
let previousUpper;
|
|
50
50
|
let previousSplitter;
|
|
51
|
-
for (const char of
|
|
51
|
+
for (const char of str) {
|
|
52
52
|
const isSplitter = splitters.includes(char);
|
|
53
53
|
if (isSplitter === true) {
|
|
54
54
|
parts.push(buff);
|
|
@@ -65,7 +65,7 @@ function splitByCase(string_, separators) {
|
|
|
65
65
|
continue;
|
|
66
66
|
}
|
|
67
67
|
if (previousUpper === true && isUpper === false && buff.length > 1) {
|
|
68
|
-
const lastChar = buff
|
|
68
|
+
const lastChar = buff.at(-1);
|
|
69
69
|
parts.push(buff.slice(0, Math.max(0, buff.length - 1)));
|
|
70
70
|
buff = lastChar + char;
|
|
71
71
|
previousUpper = isUpper;
|
|
@@ -79,20 +79,20 @@ function splitByCase(string_, separators) {
|
|
|
79
79
|
parts.push(buff);
|
|
80
80
|
return parts;
|
|
81
81
|
}
|
|
82
|
-
function upperFirst(
|
|
83
|
-
return
|
|
82
|
+
function upperFirst(str) {
|
|
83
|
+
return str ? str[0].toUpperCase() + str.slice(1) : "";
|
|
84
84
|
}
|
|
85
|
-
function lowerFirst(
|
|
86
|
-
return
|
|
85
|
+
function lowerFirst(str) {
|
|
86
|
+
return str ? str[0].toLowerCase() + str.slice(1) : "";
|
|
87
87
|
}
|
|
88
|
-
function pascalCase(
|
|
89
|
-
return
|
|
88
|
+
function pascalCase(str, opts) {
|
|
89
|
+
return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => upperFirst(opts?.normalize ? p.toLowerCase() : p)).join("") : "";
|
|
90
90
|
}
|
|
91
|
-
function camelCase(
|
|
92
|
-
return lowerFirst(pascalCase(
|
|
91
|
+
function camelCase(str, opts) {
|
|
92
|
+
return lowerFirst(pascalCase(str || "", opts));
|
|
93
93
|
}
|
|
94
|
-
function kebabCase(
|
|
95
|
-
return
|
|
94
|
+
function kebabCase(str, joiner) {
|
|
95
|
+
return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => p.toLowerCase()).join(joiner ?? "-") : "";
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
function toArr(any) {
|
|
@@ -359,8 +359,12 @@ async function renderUsage(cmd, parent) {
|
|
|
359
359
|
if (arg.type === "positional") {
|
|
360
360
|
const name = arg.name.toUpperCase();
|
|
361
361
|
const isRequired = arg.required !== false && arg.default === void 0;
|
|
362
|
-
const
|
|
363
|
-
posLines.push([
|
|
362
|
+
const defaultHint = arg.default ? `="${arg.default}"` : "";
|
|
363
|
+
posLines.push([
|
|
364
|
+
"`" + name + defaultHint + "`",
|
|
365
|
+
arg.description || "",
|
|
366
|
+
arg.valueHint ? `<${arg.valueHint}>` : ""
|
|
367
|
+
]);
|
|
364
368
|
usageLine.push(isRequired ? `<${name}>` : `[${name}]`);
|
|
365
369
|
} else {
|
|
366
370
|
const isRequired = arg.required === true && arg.default === void 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "citty",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Elegant CLI Builder",
|
|
5
5
|
"repository": "unjs/citty",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,17 +33,17 @@
|
|
|
33
33
|
"consola": "^3.2.3"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@types/node": "^20.
|
|
37
|
-
"@vitest/coverage-v8": "^
|
|
36
|
+
"@types/node": "^20.11.17",
|
|
37
|
+
"@vitest/coverage-v8": "^1.2.2",
|
|
38
38
|
"changelogen": "^0.5.5",
|
|
39
|
-
"eslint": "^8.
|
|
39
|
+
"eslint": "^8.56.0",
|
|
40
40
|
"eslint-config-unjs": "^0.2.1",
|
|
41
41
|
"jiti": "^1.21.0",
|
|
42
|
-
"prettier": "^3.
|
|
43
|
-
"scule": "^1.
|
|
44
|
-
"typescript": "^5.
|
|
42
|
+
"prettier": "^3.2.5",
|
|
43
|
+
"scule": "^1.3.0",
|
|
44
|
+
"typescript": "^5.3.3",
|
|
45
45
|
"unbuild": "^2.0.0",
|
|
46
|
-
"vitest": "^
|
|
46
|
+
"vitest": "^1.2.2"
|
|
47
47
|
},
|
|
48
|
-
"packageManager": "pnpm@8.
|
|
48
|
+
"packageManager": "pnpm@8.15.1"
|
|
49
49
|
}
|