Skip to content

Commit 29d5b27

Browse files
committed
Added parseargs lib
1 parent a82769b commit 29d5b27

File tree

3 files changed

+267
-47
lines changed

3 files changed

+267
-47
lines changed

LICENSE

Lines changed: 209 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,215 @@ MIT, Apache-2.0
3131

3232
## Bundled dependencies
3333

34+
## @pkgjs/parseargs
35+
36+
License: MIT
37+
By: undefined
38+
Repository: git+ssh://[email protected]/pkgjs/parseargs.git
39+
40+
> Apache License
41+
> Version 2.0, January 2004
42+
> http://www.apache.org/licenses/
43+
>
44+
> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
45+
>
46+
> 1. Definitions.
47+
>
48+
> "License" shall mean the terms and conditions for use, reproduction,
49+
> and distribution as defined by Sections 1 through 9 of this document.
50+
>
51+
> "Licensor" shall mean the copyright owner or entity authorized by
52+
> the copyright owner that is granting the License.
53+
>
54+
> "Legal Entity" shall mean the union of the acting entity and all
55+
> other entities that control, are controlled by, or are under common
56+
> control with that entity. For the purposes of this definition,
57+
> "control" means (i) the power, direct or indirect, to cause the
58+
> direction or management of such entity, whether by contract or
59+
> otherwise, or (ii) ownership of fifty percent (50%) or more of the
60+
> outstanding shares, or (iii) beneficial ownership of such entity.
61+
>
62+
> "You" (or "Your") shall mean an individual or Legal Entity
63+
> exercising permissions granted by this License.
64+
>
65+
> "Source" form shall mean the preferred form for making modifications,
66+
> including but not limited to software source code, documentation
67+
> source, and configuration files.
68+
>
69+
> "Object" form shall mean any form resulting from mechanical
70+
> transformation or translation of a Source form, including but
71+
> not limited to compiled object code, generated documentation,
72+
> and conversions to other media types.
73+
>
74+
> "Work" shall mean the work of authorship, whether in Source or
75+
> Object form, made available under the License, as indicated by a
76+
> copyright notice that is included in or attached to the work
77+
> (an example is provided in the Appendix below).
78+
>
79+
> "Derivative Works" shall mean any work, whether in Source or Object
80+
> form, that is based on (or derived from) the Work and for which the
81+
> editorial revisions, annotations, elaborations, or other modifications
82+
> represent, as a whole, an original work of authorship. For the purposes
83+
> of this License, Derivative Works shall not include works that remain
84+
> separable from, or merely link (or bind by name) to the interfaces of,
85+
> the Work and Derivative Works thereof.
86+
>
87+
> "Contribution" shall mean any work of authorship, including
88+
> the original version of the Work and any modifications or additions
89+
> to that Work or Derivative Works thereof, that is intentionally
90+
> submitted to Licensor for inclusion in the Work by the copyright owner
91+
> or by an individual or Legal Entity authorized to submit on behalf of
92+
> the copyright owner. For the purposes of this definition, "submitted"
93+
> means any form of electronic, verbal, or written communication sent
94+
> to the Licensor or its representatives, including but not limited to
95+
> communication on electronic mailing lists, source code control systems,
96+
> and issue tracking systems that are managed by, or on behalf of, the
97+
> Licensor for the purpose of discussing and improving the Work, but
98+
> excluding communication that is conspicuously marked or otherwise
99+
> designated in writing by the copyright owner as "Not a Contribution."
100+
>
101+
> "Contributor" shall mean Licensor and any individual or Legal Entity
102+
> on behalf of whom a Contribution has been received by Licensor and
103+
> subsequently incorporated within the Work.
104+
>
105+
> 2. Grant of Copyright License. Subject to the terms and conditions of
106+
> this License, each Contributor hereby grants to You a perpetual,
107+
> worldwide, non-exclusive, no-charge, royalty-free, irrevocable
108+
> copyright license to reproduce, prepare Derivative Works of,
109+
> publicly display, publicly perform, sublicense, and distribute the
110+
> Work and such Derivative Works in Source or Object form.
111+
>
112+
> 3. Grant of Patent License. Subject to the terms and conditions of
113+
> this License, each Contributor hereby grants to You a perpetual,
114+
> worldwide, non-exclusive, no-charge, royalty-free, irrevocable
115+
> (except as stated in this section) patent license to make, have made,
116+
> use, offer to sell, sell, import, and otherwise transfer the Work,
117+
> where such license applies only to those patent claims licensable
118+
> by such Contributor that are necessarily infringed by their
119+
> Contribution(s) alone or by combination of their Contribution(s)
120+
> with the Work to which such Contribution(s) was submitted. If You
121+
> institute patent litigation against any entity (including a
122+
> cross-claim or counterclaim in a lawsuit) alleging that the Work
123+
> or a Contribution incorporated within the Work constitutes direct
124+
> or contributory patent infringement, then any patent licenses
125+
> granted to You under this License for that Work shall terminate
126+
> as of the date such litigation is filed.
127+
>
128+
> 4. Redistribution. You may reproduce and distribute copies of the
129+
> Work or Derivative Works thereof in any medium, with or without
130+
> modifications, and in Source or Object form, provided that You
131+
> meet the following conditions:
132+
>
133+
> (a) You must give any other recipients of the Work or
134+
> Derivative Works a copy of this License; and
135+
>
136+
> (b) You must cause any modified files to carry prominent notices
137+
> stating that You changed the files; and
138+
>
139+
> (c) You must retain, in the Source form of any Derivative Works
140+
> that You distribute, all copyright, patent, trademark, and
141+
> attribution notices from the Source form of the Work,
142+
> excluding those notices that do not pertain to any part of
143+
> the Derivative Works; and
144+
>
145+
> (d) If the Work includes a "NOTICE" text file as part of its
146+
> distribution, then any Derivative Works that You distribute must
147+
> include a readable copy of the attribution notices contained
148+
> within such NOTICE file, excluding those notices that do not
149+
> pertain to any part of the Derivative Works, in at least one
150+
> of the following places: within a NOTICE text file distributed
151+
> as part of the Derivative Works; within the Source form or
152+
> documentation, if provided along with the Derivative Works; or,
153+
> within a display generated by the Derivative Works, if and
154+
> wherever such third-party notices normally appear. The contents
155+
> of the NOTICE file are for informational purposes only and
156+
> do not modify the License. You may add Your own attribution
157+
> notices within Derivative Works that You distribute, alongside
158+
> or as an addendum to the NOTICE text from the Work, provided
159+
> that such additional attribution notices cannot be construed
160+
> as modifying the License.
161+
>
162+
> You may add Your own copyright statement to Your modifications and
163+
> may provide additional or different license terms and conditions
164+
> for use, reproduction, or distribution of Your modifications, or
165+
> for any such Derivative Works as a whole, provided Your use,
166+
> reproduction, and distribution of the Work otherwise complies with
167+
> the conditions stated in this License.
168+
>
169+
> 5. Submission of Contributions. Unless You explicitly state otherwise,
170+
> any Contribution intentionally submitted for inclusion in the Work
171+
> by You to the Licensor shall be under the terms and conditions of
172+
> this License, without any additional terms or conditions.
173+
> Notwithstanding the above, nothing herein shall supersede or modify
174+
> the terms of any separate license agreement you may have executed
175+
> with Licensor regarding such Contributions.
176+
>
177+
> 6. Trademarks. This License does not grant permission to use the trade
178+
> names, trademarks, service marks, or product names of the Licensor,
179+
> except as required for reasonable and customary use in describing the
180+
> origin of the Work and reproducing the content of the NOTICE file.
181+
>
182+
> 7. Disclaimer of Warranty. Unless required by applicable law or
183+
> agreed to in writing, Licensor provides the Work (and each
184+
> Contributor provides its Contributions) on an "AS IS" BASIS,
185+
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
186+
> implied, including, without limitation, any warranties or conditions
187+
> of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
188+
> PARTICULAR PURPOSE. You are solely responsible for determining the
189+
> appropriateness of using or redistributing the Work and assume any
190+
> risks associated with Your exercise of permissions under this License.
191+
>
192+
> 8. Limitation of Liability. In no event and under no legal theory,
193+
> whether in tort (including negligence), contract, or otherwise,
194+
> unless required by applicable law (such as deliberate and grossly
195+
> negligent acts) or agreed to in writing, shall any Contributor be
196+
> liable to You for damages, including any direct, indirect, special,
197+
> incidental, or consequential damages of any character arising as a
198+
> result of this License or out of the use or inability to use the
199+
> Work (including but not limited to damages for loss of goodwill,
200+
> work stoppage, computer failure or malfunction, or any and all
201+
> other commercial damages or losses), even if such Contributor
202+
> has been advised of the possibility of such damages.
203+
>
204+
> 9. Accepting Warranty or Additional Liability. While redistributing
205+
> the Work or Derivative Works thereof, You may choose to offer,
206+
> and charge a fee for, acceptance of support, warranty, indemnity,
207+
> or other liability obligations and/or rights consistent with this
208+
> License. However, in accepting such obligations, You may act only
209+
> on Your own behalf and on Your sole responsibility, not on behalf
210+
> of any other Contributor, and only if You agree to indemnify,
211+
> defend, and hold each Contributor harmless for any liability
212+
> incurred by, or claims asserted against, such Contributor by reason
213+
> of your accepting any such warranty or additional liability.
214+
>
215+
> END OF TERMS AND CONDITIONS
216+
>
217+
> APPENDIX: How to apply the Apache License to your work.
218+
>
219+
> To apply the Apache License to your work, attach the following
220+
> boilerplate notice, with the fields enclosed by brackets "[]"
221+
> replaced with your own identifying information. (Don't include
222+
> the brackets!) The text should be enclosed in the appropriate
223+
> comment syntax for the file format. We also recommend that a
224+
> file or class name and description of purpose be included on the
225+
> same "printed page" as the copyright notice for easier
226+
> identification within third-party archives.
227+
>
228+
> Copyright [yyyy] [name of copyright owner]
229+
>
230+
> Licensed under the Apache License, Version 2.0 (the "License");
231+
> you may not use this file except in compliance with the License.
232+
> You may obtain a copy of the License at
233+
>
234+
> http://www.apache.org/licenses/LICENSE-2.0
235+
>
236+
> Unless required by applicable law or agreed to in writing, software
237+
> distributed under the License is distributed on an "AS IS" BASIS,
238+
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
239+
> See the License for the specific language governing permissions and
240+
> limitations under the License.
241+
>
242+
34243
## @vue/create-eslint-config
35244

36245
License: MIT
@@ -356,32 +565,6 @@ Repository: git+https://github.com/marvinhagemeister/kolorist.git
356565
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
357566
> SOFTWARE.
358567

359-
## minimist
360-
361-
License: MIT
362-
By: James Halliday
363-
Repository: git://github.com/minimistjs/minimist.git
364-
365-
> This software is released under the MIT license:
366-
>
367-
> Permission is hereby granted, free of charge, to any person obtaining a copy of
368-
> this software and associated documentation files (the "Software"), to deal in
369-
> the Software without restriction, including without limitation the rights to
370-
> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
371-
> the Software, and to permit persons to whom the Software is furnished to do so,
372-
> subject to the following conditions:
373-
>
374-
> The above copyright notice and this permission notice shall be included in all
375-
> copies or substantial portions of the Software.
376-
>
377-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
378-
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
379-
> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
380-
> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
381-
> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
382-
> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
383-
>
384-
385568
## prompts
386569

387570
License: MIT

index.ts

Lines changed: 57 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import prompts from 'prompts'
88
import { red, green, bold } from 'kolorist'
99

1010
import ejs from 'ejs'
11+
import { parseArgs } from '@pkgjs/parseargs'
1112

1213
import * as banners from './utils/banners'
1314

@@ -69,31 +70,66 @@ async function init() {
6970
console.log()
7071

7172
const cwd = process.cwd()
73+
7274
// possible options:
73-
// --default
74-
// --typescript / --ts
75-
// --jsx
76-
// --router / --vue-router
77-
// --pinia
78-
// --with-tests / --tests (equals to `--vitest --cypress`)
79-
// --vitest
80-
// --cypress
81-
// --nightwatch
82-
// --playwright
83-
// --eslint
84-
// --eslint-with-prettier (only support prettier through eslint for simplicity)
85-
// --force (for force overwriting)
86-
const argv = minimist(process.argv.slice(2), {
87-
alias: {
88-
typescript: ['ts'],
89-
'with-tests': ['tests'],
90-
router: ['vue-router']
75+
const argvRaw = parseArgs({
76+
args: process.argv.slice(2),
77+
options: {
78+
default: {
79+
type: 'boolean'
80+
},
81+
typescript: {
82+
short: 't',
83+
type: 'boolean'
84+
},
85+
jsx: {
86+
type: 'boolean'
87+
},
88+
router: {
89+
short: 'r',
90+
type: 'boolean'
91+
},
92+
pinia: {
93+
type: 'boolean'
94+
},
95+
// --with-tests / --tests (equals to `--vitest --cypress`)
96+
'with-tests': {
97+
short: 'w',
98+
type: 'boolean'
99+
},
100+
vitest: {
101+
type: 'boolean'
102+
},
103+
cypress: {
104+
type: 'boolean'
105+
},
106+
nightwatch: {
107+
type: 'boolean'
108+
},
109+
playwright: {
110+
type: 'boolean'
111+
},
112+
eslint: {
113+
type: 'boolean'
114+
},
115+
// only support prettier through eslint for simplicity+
116+
'eslint-with-prettier': {
117+
type: 'boolean'
118+
},
119+
// for force overwriting
120+
force: {
121+
short: 'f',
122+
type: 'boolean'
123+
}
91124
},
92-
string: ['_'],
93-
// all arguments are treated as booleans
94-
boolean: true
125+
allowPositionals: true
95126
})
96127

128+
const argv = {
129+
_: argvRaw.positionals,
130+
...argvRaw.values
131+
}
132+
97133
// if any of the feature flags is set, we would skip the feature prompts
98134
const isFeatureFlagsUsed =
99135
typeof (

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
},
3535
"homepage": "https://github.com/vuejs/create-vue#readme",
3636
"devDependencies": {
37+
"@pkgjs/parseargs": "^0.11.0",
3738
"@tsconfig/node18": "^18.2.2",
3839
"@types/eslint": "^8.44.2",
3940
"@types/node": "^18.17.17",

0 commit comments

Comments
 (0)