async function searchDir()

in packages/autorest.python/scripts/eng/regenerate.ts [160:201]


    async function searchDir(currentDir: string) {
        const items = await promises.readdir(currentDir, { withFileTypes: true });

        const promisesArray = items.map(async (item) => {
            const subDirPath = join(currentDir, item.name);
            if (item.isDirectory()) {
                const mainTspPath = join(subDirPath, "main.tsp");
                const clientTspPath = join(subDirPath, "client.tsp");

                const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath));
                if (flags.flavor === "unbranded" && mainTspRelativePath.includes("azure")) return;

                // after fix test generation for nested operation group, remove this check
                if (mainTspRelativePath.includes("client-operation-group")) return;

                const hasMainTsp = await promises
                    .access(mainTspPath)
                    .then(() => true)
                    .catch(() => false);
                const hasClientTsp = await promises
                    .access(clientTspPath)
                    .then(() => true)
                    .catch(() => false);

                if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) {
                    if (mainTspRelativePath.includes("resiliency/srv-driven")) {
                        subdirectories.push(resolve(subDirPath, "old.tsp"));
                    }
                    if (hasClientTsp) {
                        subdirectories.push(resolve(subDirPath, "client.tsp"));
                    } else if (hasMainTsp) {
                        subdirectories.push(resolve(subDirPath, "main.tsp"));
                    }
                }

                // Recursively search in the subdirectory
                await searchDir(subDirPath);
            }
        });

        await Promise.all(promisesArray);
    }