diff --git a/packages/monorepo-tools/src/utils/get-packages-in-topological-order.spec.ts b/packages/monorepo-tools/src/utils/get-packages-in-topological-order.spec.ts index 4338dd40b..c5c070ffe 100644 --- a/packages/monorepo-tools/src/utils/get-packages-in-topological-order.spec.ts +++ b/packages/monorepo-tools/src/utils/get-packages-in-topological-order.spec.ts @@ -200,14 +200,16 @@ describe('getPackagesInTopologicalOrder', function () { ); }); - it('returns empty array when there are no workspaces', async function () { + it('supports single repo without workspace', async function () { await fs.writeFile( path.join(tmpDir, 'package.json'), JSON.stringify({ name: 'root' }), ); const result = await getPackagesInTopologicalOrder(tmpDir); + const names = result.map((p) => p.name); - assert.deepStrictEqual(result, []); + assert.strictEqual(names.length, 1); + assert.ok(names.includes('root')); }); }); diff --git a/packages/monorepo-tools/src/utils/get-packages-in-topological-order.ts b/packages/monorepo-tools/src/utils/get-packages-in-topological-order.ts index d5ae643e9..0f936570d 100644 --- a/packages/monorepo-tools/src/utils/get-packages-in-topological-order.ts +++ b/packages/monorepo-tools/src/utils/get-packages-in-topological-order.ts @@ -19,10 +19,9 @@ export interface PackageInfo { export async function getPackagesInTopologicalOrder( monorepoRoot: string, ): Promise { - const patterns: string[] = - JSON.parse( - await fs.readFile(path.join(monorepoRoot, `package.json`), 'utf8'), - ).workspaces || []; + const patterns: string[] = JSON.parse( + await fs.readFile(path.join(monorepoRoot, `package.json`), 'utf8'), + ).workspaces || ['.']; // default value that considers monorepo root as a "workspace" for further analysis const packageJsonPaths = await glob( // NOTE: glob patterns should always use forward slashes,