const path = require('path'); const batchPackages = require('@lerna/batch-packages'); const { getPackages } = require('@lerna/project'); /** * Get a list of the non-private sorted packages with Lerna v3 * @see https://github.com/lerna/lerna/issues/1848 * @return {Promise<Package[]>} List of packages */ async function getSortedPackages() { // Standard Lerna plumbing getting packages const packages = await getPackages(path.dirname(__dirname)); return batchPackages(packages) .reduce((arr, batch) => arr.concat(batch), []) .filter((pkg) => !!pkg.scripts.test); } async function main() { const buffer = []; (await getSortedPackages()).forEach((pkg) => { buffer.push(`${pkg.location}/test`); }); // eslint-disable-next-line no-console console.log(JSON.stringify(buffer)); } main();