()
| 468 | const framework = getFrameworkById(cliOptions.framework || 'react')! |
| 469 | |
| 470 | async function selectAddOns() { |
| 471 | // Edge case for Windows Powershell |
| 472 | if (Array.isArray(cliOptions.addOns) && cliOptions.addOns.length === 1) { |
| 473 | const parseSeparatedArgs = cliOptions.addOns[0].split(' ') |
| 474 | if (parseSeparatedArgs.length > 1) { |
| 475 | cliOptions.addOns = parseSeparatedArgs |
| 476 | } |
| 477 | } |
| 478 | |
| 479 | if ( |
| 480 | Array.isArray(cliOptions.addOns) || |
| 481 | starter?.dependsOn || |
| 482 | forcedAddOns || |
| 483 | cliOptions.toolchain || |
| 484 | cliOptions.deployment |
| 485 | ) { |
| 486 | const selectedAddOns = new Set<string>([ |
| 487 | ...(routerOnly ? [] : (starter?.dependsOn || [])), |
| 488 | ...(routerOnly ? [] : (forcedAddOns || [])), |
| 489 | ]) |
| 490 | if (!routerOnly && cliOptions.addOns && Array.isArray(cliOptions.addOns)) { |
| 491 | for (const a of cliOptions.addOns) { |
| 492 | if (a.toLowerCase() === 'start') { |
| 493 | continue |
| 494 | } |
| 495 | selectedAddOns.add(a) |
| 496 | } |
| 497 | } |
| 498 | if (cliOptions.toolchain) { |
| 499 | selectedAddOns.add(cliOptions.toolchain) |
| 500 | } |
| 501 | if (!routerOnly && cliOptions.deployment) { |
| 502 | selectedAddOns.add(cliOptions.deployment) |
| 503 | } |
| 504 | |
| 505 | if (!routerOnly && !cliOptions.deployment && opts?.forcedDeployment) { |
| 506 | selectedAddOns.add(opts.forcedDeployment) |
| 507 | } |
| 508 | |
| 509 | return await finalizeAddOns(framework, mode, Array.from(selectedAddOns)) |
| 510 | } |
| 511 | |
| 512 | return [] |
| 513 | } |
| 514 | |
| 515 | const includeExamples = cliOptions.examples ?? !routerOnly |
| 516 | const chosenAddOnsRaw = await selectAddOns() |
no test coverage detected