1
1
import path from "path" ;
2
- import { findRoot , findRootSync , FindRootOptions } from "@manypkg/find-root" ;
2
+ import { findRoot , findRootSync , FindRootOptions , DEFAULT_TOOLS } from "@manypkg/find-root" ;
3
3
import { Packages , MonorepoRoot , Tool } from "@manypkg/tools" ;
4
4
5
5
export type { Tool , Package , Packages } from "@manypkg/tools" ;
@@ -36,12 +36,14 @@ export async function getPackages(
36
36
options ?: GetPackagesOptions
37
37
) : Promise < Packages > {
38
38
const monorepoRoot : MonorepoRoot = await findRoot ( dir , options ) ;
39
- const packages : Packages = await monorepoRoot . tool . getPackages (
39
+ const tools = options ?. tools || DEFAULT_TOOLS ;
40
+ const tool = tools . find ( ( t ) => t . type === monorepoRoot . tool ) ;
41
+ if ( ! tool ) throw new Error ( `Could not find ${ monorepoRoot . tool } tool` ) ;
42
+
43
+ const packages : Packages = await tool . getPackages (
40
44
monorepoRoot . rootDir
41
45
) ;
42
-
43
46
validatePackages ( packages ) ;
44
-
45
47
return packages ;
46
48
}
47
49
@@ -53,12 +55,14 @@ export function getPackagesSync(
53
55
options ?: GetPackagesOptions
54
56
) : Packages {
55
57
const monorepoRoot : MonorepoRoot = findRootSync ( dir , options ) ;
56
- const packages : Packages = monorepoRoot . tool . getPackagesSync (
58
+ const tools = options ?. tools || DEFAULT_TOOLS ;
59
+ const tool = tools . find ( ( t ) => t . type === monorepoRoot . tool ) ;
60
+ if ( ! tool ) throw new Error ( `Could not find ${ monorepoRoot . tool } tool` ) ;
61
+
62
+ const packages : Packages = tool . getPackagesSync (
57
63
monorepoRoot . rootDir
58
64
) ;
59
-
60
65
validatePackages ( packages ) ;
61
-
62
66
return packages ;
63
67
}
64
68
0 commit comments