Skip to content

Commit 98492bb

Browse files
committed
fix(generator): add change-case to paramCase appname to solve invalid package name
1 parent 74ae100 commit 98492bb

File tree

3 files changed

+142
-4
lines changed

3 files changed

+142
-4
lines changed

generators/app/index.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
const Generator = require('yeoman-generator');
22
const chalk = require('chalk');
33
const yosay = require('yosay');
4+
const changeCase = require('change-case');
45

56
const pkg = require('../../package.json');
67

78
module.exports = class extends Generator {
89
async prompting() {
910
this.log(yosay(`Welcome to the ${chalk.red(pkg.name)} generator!`));
1011

12+
const appName = changeCase.paramCase(this.appname);
1113
const gitName = this.user.git.name() || 'organization';
1214
const gitEmail = this.user.git.email() || 'hi@domain.com';
1315
const githubUsername = await (async () => {
@@ -24,7 +26,7 @@ module.exports = class extends Generator {
2426
type: 'input',
2527
name: 'elementName',
2628
message: 'Name of this package?',
27-
default: this.appname,
29+
default: appName,
2830
},
2931
{
3032
type: 'input',
@@ -36,13 +38,13 @@ module.exports = class extends Generator {
3638
type: 'input',
3739
name: 'elementHomepage',
3840
message: 'Homepage?',
39-
default: `https://github.com/${githubUsername}/${this.appname}`,
41+
default: `https://github.com/${githubUsername}/${appName}`,
4042
},
4143
{
4244
type: 'input',
4345
name: 'elementBugs',
4446
message: 'Bugs tracker?',
45-
default: `https://github.com/${githubUsername}/${this.appname}/issues`,
47+
default: `https://github.com/${githubUsername}/${appName}/issues`,
4648
},
4749
{
4850
type: 'input',
@@ -54,7 +56,7 @@ module.exports = class extends Generator {
5456
type: 'input',
5557
name: 'elementRepository',
5658
message: 'Repository?',
57-
default: `https://github.com/${githubUsername}/${this.appname}.git`,
59+
default: `https://github.com/${githubUsername}/${appName}.git`,
5860
},
5961
];
6062

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
},
3232
"devDependencies": {
3333
"@boringcodes/prettier-config": "^1.0.0",
34+
"change-case": "^4.1.1",
3435
"husky": "^4.2.3",
3536
"prettier": "^2.0.2",
3637
"pretty-quick": "^2.0.1",

yarn.lock

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,14 @@ callsites@^3.0.0:
253253
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
254254
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
255255

256+
camel-case@^4.1.1:
257+
version "4.1.1"
258+
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547"
259+
integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==
260+
dependencies:
261+
pascal-case "^3.1.1"
262+
tslib "^1.10.0"
263+
256264
camelcase-keys@^2.0.0:
257265
version "2.1.0"
258266
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
@@ -280,6 +288,15 @@ camelcase@^5.0.0:
280288
version "5.3.1"
281289
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
282290

291+
capital-case@^1.0.3:
292+
version "1.0.3"
293+
resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.3.tgz#339bd77e8fab6cf75111d4fca509b3edf7c117c8"
294+
integrity sha512-OlUSJpUr7SY0uZFOxcwnDOU7/MpHlKTZx2mqnDYQFrDudXLFm0JJ9wr/l4csB+rh2Ug0OPuoSO53PqiZBqno9A==
295+
dependencies:
296+
no-case "^3.0.3"
297+
tslib "^1.10.0"
298+
upper-case-first "^2.0.1"
299+
283300
capture-stack-trace@^1.0.0:
284301
version "1.0.1"
285302
resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
@@ -309,6 +326,24 @@ chalk@^3.0.0:
309326
ansi-styles "^4.1.0"
310327
supports-color "^7.1.0"
311328

329+
change-case@^4.1.1:
330+
version "4.1.1"
331+
resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.1.tgz#d5005709275952e7963fed7b91e4f9fdb6180afa"
332+
integrity sha512-qRlUWn/hXnX1R1LBDF/RelJLiqNjKjUqlmuBVSEIyye8kq49CXqkZWKmi8XeUAdDXWFOcGLUMZ+aHn3Q5lzUXw==
333+
dependencies:
334+
camel-case "^4.1.1"
335+
capital-case "^1.0.3"
336+
constant-case "^3.0.3"
337+
dot-case "^3.0.3"
338+
header-case "^2.0.3"
339+
no-case "^3.0.3"
340+
param-case "^3.0.3"
341+
pascal-case "^3.1.1"
342+
path-case "^3.0.3"
343+
sentence-case "^3.0.3"
344+
snake-case "^3.0.3"
345+
tslib "^1.10.0"
346+
312347
chardet@^0.7.0:
313348
version "0.7.0"
314349
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
@@ -455,6 +490,15 @@ concat-stream@^2.0.0:
455490
readable-stream "^3.0.2"
456491
typedarray "^0.0.6"
457492

493+
constant-case@^3.0.3:
494+
version "3.0.3"
495+
resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.3.tgz#ac910a99caf3926ac5112f352e3af599d8c5fc0a"
496+
integrity sha512-FXtsSnnrFYpzDmvwDGQW+l8XK3GV1coLyBN0eBz16ZUzGaZcT2ANVCJmLeuw2GQgxKHQIe9e0w2dzkSfaRlUmA==
497+
dependencies:
498+
no-case "^3.0.3"
499+
tslib "^1.10.0"
500+
upper-case "^2.0.1"
501+
458502
conventional-changelog-angular@^5.0.6:
459503
version "5.0.6"
460504
resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059"
@@ -752,6 +796,14 @@ dir-glob@^2.2.2:
752796
dependencies:
753797
path-type "^3.0.0"
754798

799+
dot-case@^3.0.3:
800+
version "3.0.3"
801+
resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa"
802+
integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==
803+
dependencies:
804+
no-case "^3.0.3"
805+
tslib "^1.10.0"
806+
755807
dot-prop@^3.0.0:
756808
version "3.0.0"
757809
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177"
@@ -1167,6 +1219,14 @@ has-values@^1.0.0:
11671219
is-number "^3.0.0"
11681220
kind-of "^4.0.0"
11691221

1222+
header-case@^2.0.3:
1223+
version "2.0.3"
1224+
resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.3.tgz#8a7407d16edfd5c970f8ebb116e6383f855b5a72"
1225+
integrity sha512-LChe/V32mnUQnTwTxd3aAlNMk8ia9tjCDb/LjYtoMrdAPApxLB+azejUk5ERZIZdIqvinwv6BAUuFXH/tQPdZA==
1226+
dependencies:
1227+
capital-case "^1.0.3"
1228+
tslib "^1.10.0"
1229+
11701230
hosted-git-info@^2.1.4:
11711231
version "2.8.5"
11721232
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c"
@@ -1561,6 +1621,13 @@ loud-rejection@^1.0.0:
15611621
currently-unhandled "^0.4.1"
15621622
signal-exit "^3.0.0"
15631623

1624+
lower-case@^2.0.1:
1625+
version "2.0.1"
1626+
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7"
1627+
integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==
1628+
dependencies:
1629+
tslib "^1.10.0"
1630+
15641631
lowercase-keys@^1.0.0:
15651632
version "1.0.1"
15661633
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
@@ -1785,6 +1852,14 @@ nice-try@^1.0.4:
17851852
version "1.0.5"
17861853
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
17871854

1855+
no-case@^3.0.3:
1856+
version "3.0.3"
1857+
resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8"
1858+
integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==
1859+
dependencies:
1860+
lower-case "^2.0.1"
1861+
tslib "^1.10.0"
1862+
17881863
normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.5.0:
17891864
version "2.5.0"
17901865
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -1919,6 +1994,14 @@ pad-component@0.0.1:
19191994
version "0.0.1"
19201995
resolved "https://registry.yarnpkg.com/pad-component/-/pad-component-0.0.1.tgz#ad1f22ce1bf0fdc0d6ddd908af17f351a404b8ac"
19211996

1997+
param-case@^3.0.3:
1998+
version "3.0.3"
1999+
resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238"
2000+
integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==
2001+
dependencies:
2002+
dot-case "^3.0.3"
2003+
tslib "^1.10.0"
2004+
19222005
parent-module@^1.0.0:
19232006
version "1.0.1"
19242007
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -1952,10 +2035,26 @@ parse-json@^5.0.0:
19522035
json-parse-better-errors "^1.0.1"
19532036
lines-and-columns "^1.1.6"
19542037

2038+
pascal-case@^3.1.1:
2039+
version "3.1.1"
2040+
resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f"
2041+
integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==
2042+
dependencies:
2043+
no-case "^3.0.3"
2044+
tslib "^1.10.0"
2045+
19552046
pascalcase@^0.1.1:
19562047
version "0.1.1"
19572048
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
19582049

2050+
path-case@^3.0.3:
2051+
version "3.0.3"
2052+
resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.3.tgz#d48119aed52c4712e036ca40c6b15984f909554f"
2053+
integrity sha512-UMFU6UETFpCNWbIWNczshPrnK/7JAXBP2NYw80ojElbQ2+JYxdqWDBkvvqM93u4u6oLmuJ/tPOf2tM8KtXv4eg==
2054+
dependencies:
2055+
dot-case "^3.0.3"
2056+
tslib "^1.10.0"
2057+
19592058
path-dirname@^1.0.0:
19602059
version "1.0.2"
19612060
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
@@ -2318,6 +2417,15 @@ semver@6.3.0, semver@^6.0.0, semver@^6.3.0:
23182417
version "6.3.0"
23192418
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
23202419

2420+
sentence-case@^3.0.3:
2421+
version "3.0.3"
2422+
resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.3.tgz#47576e4adff7abf42c63c815b0543c9d2f85a930"
2423+
integrity sha512-ZPr4dgTcNkEfcGOMFQyDdJrTU9uQO1nb1cjf+nuzb6FxgMDgKddZOM29qEsB7jvsZSMruLRcL2KfM4ypKpa0LA==
2424+
dependencies:
2425+
no-case "^3.0.3"
2426+
tslib "^1.10.0"
2427+
upper-case-first "^2.0.1"
2428+
23212429
set-blocking@^2.0.0:
23222430
version "2.0.0"
23232431
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -2378,6 +2486,14 @@ slash@^3.0.0:
23782486
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
23792487
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
23802488

2489+
snake-case@^3.0.3:
2490+
version "3.0.3"
2491+
resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.3.tgz#c598b822ab443fcbb145ae8a82c5e43526d5bbee"
2492+
integrity sha512-WM1sIXEO+rsAHBKjGf/6R1HBBcgbncKS08d2Aqec/mrDSpU80SiOU41hO7ny6DToHSyrlwTYzQBIK1FPSx4Y3Q==
2493+
dependencies:
2494+
dot-case "^3.0.3"
2495+
tslib "^1.10.0"
2496+
23812497
snapdragon-node@^2.0.1:
23822498
version "2.1.1"
23832499
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -2689,6 +2805,11 @@ trim-off-newlines@^1.0.0:
26892805
version "1.0.1"
26902806
resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3"
26912807

2808+
tslib@^1.10.0:
2809+
version "1.11.1"
2810+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
2811+
integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
2812+
26922813
tslib@^1.9.0:
26932814
version "1.11.0"
26942815
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.0.tgz#f1f3528301621a53220d58373ae510ff747a66bc"
@@ -2732,6 +2853,20 @@ unzip-response@^2.0.1:
27322853
version "2.0.1"
27332854
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
27342855

2856+
upper-case-first@^2.0.1:
2857+
version "2.0.1"
2858+
resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.1.tgz#32ab436747d891cc20ab1e43d601cb4d0a7fbf4a"
2859+
integrity sha512-105J8XqQ+9RxW3l9gHZtgve5oaiR9TIwvmZAMAIZWRHe00T21cdvewKORTlOJf/zXW6VukuTshM+HXZNWz7N5w==
2860+
dependencies:
2861+
tslib "^1.10.0"
2862+
2863+
upper-case@^2.0.1:
2864+
version "2.0.1"
2865+
resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.1.tgz#6214d05e235dc817822464ccbae85822b3d8665f"
2866+
integrity sha512-laAsbea9SY5osxrv7S99vH9xAaJKrw5Qpdh4ENRLcaxipjKsiaBwiAsxfa8X5mObKNTQPsupSq0J/VIxsSJe3A==
2867+
dependencies:
2868+
tslib "^1.10.0"
2869+
27352870
urix@^0.1.0:
27362871
version "0.1.0"
27372872
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"

0 commit comments

Comments
 (0)