@@ -39,9 +39,8 @@ const FEATURE_FLAGS = [
3939 'playwright' ,
4040 'eslint' ,
4141 'prettier' ,
42+ 'eslint-with-oxlint' ,
4243 'eslint-with-prettier' ,
43- 'oxlint' ,
44- 'rolldown-vite' ,
4544] as const
4645
4746const FEATURE_OPTIONS = [
@@ -77,20 +76,6 @@ const FEATURE_OPTIONS = [
7776 value : 'prettier' ,
7877 label : language . needsPrettier . message ,
7978 } ,
80- {
81- value : 'experimental-features' ,
82- label : language . needsExperimental . message ,
83- } ,
84- ] as const
85- const EXPERIMENTAL_FEATURE_OPTIONS = [
86- {
87- value : 'oxlint' ,
88- label : language . needsOxlint . message ,
89- } ,
90- {
91- value : 'rolldown-vite' ,
92- label : language . needsRolldownVite . message ,
93- } ,
9479] as const
9580
9681type PromptResult = {
@@ -99,7 +84,8 @@ type PromptResult = {
9984 packageName ?: string
10085 features ?: ( typeof FEATURE_OPTIONS ) [ number ] [ 'value' ] [ ]
10186 e2eFramework ?: 'cypress' | 'nightwatch' | 'playwright'
102- experimentFeatures ?: ( typeof EXPERIMENTAL_FEATURE_OPTIONS ) [ number ] [ 'value' ] [ ]
87+ experimentOxlint ?: boolean
88+ experimentRolldownVite ?: boolean
10389}
10490
10591function isValidPackageName ( projectName ) {
@@ -249,7 +235,8 @@ async function init() {
249235 packageName : defaultProjectName ,
250236 features : [ ] ,
251237 e2eFramework : undefined ,
252- experimentFeatures : [ ] ,
238+ experimentOxlint : false ,
239+ experimentRolldownVite : false ,
253240 }
254241
255242 intro (
@@ -339,19 +326,23 @@ async function init() {
339326 )
340327 }
341328
342- if ( result . features . includes ( 'experimental-features' ) ) {
343- result . experimentFeatures = await unwrapPrompt (
344- multiselect ( {
345- message : `${ language . needsExperimentalFeatures . message } ${ dim ( language . needsExperimentalFeatures . hint ) } ` ,
346- // @ts -expect-error @clack/prompt's type doesn't support readonly array yet
347- options : EXPERIMENTAL_FEATURE_OPTIONS ,
348- required : false ,
329+ if ( result . features . includes ( 'eslint' ) ) {
330+ result . experimentOxlint = await unwrapPrompt (
331+ confirm ( {
332+ message : language . needsOxlint . message ,
333+ initialValue : false ,
349334 } ) ,
350335 )
351336 }
337+ result . experimentRolldownVite = await unwrapPrompt (
338+ confirm ( {
339+ message : language . needsRolldownVite . message ,
340+ initialValue : false ,
341+ } ) ,
342+ )
352343 }
353344
354- const { features , experimentFeatures } = result
345+ const { features } = result
355346
356347 const needsTypeScript = argv . ts || argv . typescript || features . includes ( 'typescript' )
357348 const needsJsx = argv . jsx || features . includes ( 'jsx' )
@@ -361,8 +352,8 @@ async function init() {
361352 const needsEslint = argv . eslint || argv [ 'eslint-with-prettier' ] || features . includes ( 'eslint' )
362353 const needsPrettier =
363354 argv . prettier || argv [ 'eslint-with-prettier' ] || features . includes ( 'prettier' )
364- const needsOxlint = experimentFeatures . includes ( ' oxlint') || argv [ 'oxlint' ]
365- const needsRolldownVite = experimentFeatures . includes ( 'rolldown-vite' ) || argv [ 'rolldown-vite' ]
355+ const needsOxlint = argv [ 'eslint-with- oxlint'] || result . experimentOxlint
356+ const needsRolldownVite = argv [ 'rolldown-vite' ] || result . experimentRolldownVite
366357
367358 const { e2eFramework } = result
368359 const needsCypress = argv . cypress || argv . tests || e2eFramework === 'cypress'
0 commit comments