async function regenerate()

in packages/typespec-python/scripts/eng/regenerate.ts [398:422]


async function regenerate(flags: RegenerateFlagsInput): Promise<void> {
    if (flags.flavor === undefined) {
        await regenerate({ ...flags, flavor: "azure" });
        await regenerate({ ...flags, flavor: "unbranded" });
    } else {
        const flagsResolved = { debug: false, flavor: flags.flavor, ...flags };
        const subdirectoriesForAzure = await getSubdirectories(AZURE_HTTP_SPECS, flagsResolved);
        const subdirectoriesForNonAzure = await getSubdirectories(HTTP_SPECS, flagsResolved);
        const subdirectories =
            flags.flavor === "azure"
                ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure]
                : subdirectoriesForNonAzure;
        const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) =>
            _getCmdList(subdirectory, flagsResolved),
        );

        // Create tasks as functions for the pool
        const tasks: Array<() => Promise<void>> = cmdList.map((tspCommand) => {
            return () => executeCommand(tspCommand);
        });

        // Run tasks with a concurrency limit
        await runTaskPool(tasks, 30);
    }
}