// // Copyright 2021 DXOS.org // import { asyncExec } from './util'; type Project = { name: string version: string path: string fullPath: string shouldPublish: boolean }; type Projects = { projects: Project[] }; export const getProjects = async (name?: string, sortByPackage = false): Promise => { const output = await asyncExec('rush list --json'); const { projects } = JSON.parse(output) as Projects; if (!name && sortByPackage) { projects.sort(({ path: a }, { path: b }) => a < b ? -1 : a > b ? 1 : 0); } if (name) { return projects.filter((project) => project.name.toLowerCase().indexOf(name) !== -1); } return projects; }