@@ -18,7 +18,7 @@ import {
1818 type SetupResult ,
1919 getErrorHint
2020} from '../core/config.ts' ;
21- import { applyAddons , setupAddons } from '../core/engine.ts' ;
21+ import { applyAddons , orderAddons , setupAddons } from '../core/engine.ts' ;
2222import { downloadPackage , getPackageJSON } from '../core/fetch-packages.ts' ;
2323import { formatFiles } from '../core/formatFiles.ts' ;
2424import {
@@ -655,6 +655,7 @@ export async function runAddonsApply({
655655 argsFormattedAddons : string [ ] ;
656656 filesToFormat : string [ ] ;
657657 successfulAddons : LoadedAddon [ ] ;
658+ setupResults : Record < string , SetupResult > ;
658659} > {
659660 if ( ! setupResults ) {
660661 // When no addons are selected, use official addons for setup
@@ -666,7 +667,13 @@ export async function runAddonsApply({
666667 // we'll return early when no addons are selected,
667668 // indicating that installing deps was skipped and no PM was selected
668669 if ( loadedAddons . length === 0 )
669- return { nextSteps : [ ] , argsFormattedAddons : [ ] , filesToFormat : [ ] , successfulAddons : [ ] } ;
670+ return {
671+ nextSteps : [ ] ,
672+ argsFormattedAddons : [ ] ,
673+ filesToFormat : [ ] ,
674+ successfulAddons : [ ] ,
675+ setupResults : { }
676+ } ;
670677
671678 const { filesToFormat, pnpmBuildDependencies, status } = await applyAddons ( {
672679 loadedAddons,
@@ -768,19 +775,22 @@ export async function runAddonsApply({
768775 await formatFiles ( { packageManager, cwd : options . cwd , filesToFormat } ) ;
769776 }
770777
771- const nextSteps = getNextSteps ( successfulAddons , workspace , answers ) ;
778+ const nextSteps = getNextSteps ( successfulAddons , workspace , answers , setupResults ) ;
772779
773- return { nextSteps, argsFormattedAddons, filesToFormat, successfulAddons } ;
780+ return { nextSteps, argsFormattedAddons, filesToFormat, successfulAddons, setupResults } ;
774781}
775782
776783export function getNextSteps (
777784 loadedAddons : LoadedAddon [ ] ,
778785 workspace : Workspace ,
779- answers : Record < string , OptionValues < any > >
786+ answers : Record < string , OptionValues < any > > ,
787+ setupResults : Record < string , SetupResult >
780788) : string [ ] {
781- return loadedAddons
789+ const addonDefs = loadedAddons . map ( ( l ) => l . addon ) ;
790+
791+ return orderAddons ( addonDefs , setupResults )
782792 . map ( ( loaded ) => {
783- const addon = loaded . addon ;
793+ const { addon } = loadedAddons . find ( ( l ) => l . addon . id === loaded . id ) ! ;
784794 if ( ! addon . nextSteps ) return ;
785795 const addonOptions = answers [ addon . id ] ;
786796 const addonNextSteps = addon . nextSteps ( { ...workspace , options : addonOptions } ) ;
0 commit comments