workspace-tools 0.40.4 → 0.41.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +39 -1
  2. package/lib/dependencies/index.d.ts +2 -2
  3. package/lib/dependencies/index.js +31 -12
  4. package/lib/dependencies/index.js.map +1 -1
  5. package/lib/dependencies/transitiveDeps.d.ts +1 -1
  6. package/lib/dependencies/transitiveDeps.js +59 -38
  7. package/lib/dependencies/transitiveDeps.js.map +1 -1
  8. package/lib/getPackageInfo.d.ts +7 -5
  9. package/lib/getPackageInfo.js +46 -39
  10. package/lib/getPackageInfo.js.map +1 -1
  11. package/lib/getPackageInfos.d.ts +31 -8
  12. package/lib/getPackageInfos.js +41 -41
  13. package/lib/getPackageInfos.js.map +1 -1
  14. package/lib/git/config.d.ts +1 -1
  15. package/lib/git/config.js +15 -12
  16. package/lib/git/config.js.map +1 -1
  17. package/lib/git/getDefaultRemote.js +45 -30
  18. package/lib/git/getDefaultRemote.js.map +1 -1
  19. package/lib/git/getDefaultRemoteBranch.d.ts +1 -1
  20. package/lib/git/getDefaultRemoteBranch.js +35 -24
  21. package/lib/git/getDefaultRemoteBranch.js.map +1 -1
  22. package/lib/git/getRepositoryName.d.ts +1 -1
  23. package/lib/git/getRepositoryName.js +17 -19
  24. package/lib/git/getRepositoryName.js.map +1 -1
  25. package/lib/git/git.d.ts +2 -5
  26. package/lib/git/git.js +62 -64
  27. package/lib/git/git.js.map +1 -1
  28. package/lib/git/gitUtilities.d.ts +3 -3
  29. package/lib/git/gitUtilities.js +377 -147
  30. package/lib/git/gitUtilities.js.map +1 -1
  31. package/lib/git/index.d.ts +5 -5
  32. package/lib/git/index.js +50 -28
  33. package/lib/git/index.js.map +1 -1
  34. package/lib/git/types.js +4 -3
  35. package/lib/git/types.js.map +1 -1
  36. package/lib/graph/createDependencyMap.d.ts +12 -2
  37. package/lib/graph/createDependencyMap.js +18 -10
  38. package/lib/graph/createDependencyMap.js.map +1 -1
  39. package/lib/graph/createPackageGraph.d.ts +10 -6
  40. package/lib/graph/createPackageGraph.js +58 -42
  41. package/lib/graph/createPackageGraph.js.map +1 -1
  42. package/lib/graph/getPackageDependencies.d.ts +2 -2
  43. package/lib/graph/getPackageDependencies.js +24 -53
  44. package/lib/graph/getPackageDependencies.js.map +1 -1
  45. package/lib/graph/index.d.ts +4 -4
  46. package/lib/graph/index.js +25 -27
  47. package/lib/graph/index.js.map +1 -1
  48. package/lib/index.d.ts +29 -27
  49. package/lib/index.js +154 -75
  50. package/lib/index.js.map +1 -1
  51. package/lib/isCachingEnabled.js +17 -6
  52. package/lib/isCachingEnabled.js.map +1 -1
  53. package/lib/lockfile/nameAtVersion.js +9 -4
  54. package/lib/lockfile/nameAtVersion.js.map +1 -1
  55. package/lib/lockfile/parseBerryLock.d.ts +1 -1
  56. package/lib/lockfile/parseBerryLock.js +13 -11
  57. package/lib/lockfile/parseBerryLock.js.map +1 -1
  58. package/lib/lockfile/parseLockFile.d.ts +2 -0
  59. package/lib/lockfile/parseLockFile.js +87 -0
  60. package/lib/lockfile/parseLockFile.js.map +1 -0
  61. package/lib/lockfile/parseNpmLock.d.ts +1 -1
  62. package/lib/lockfile/parseNpmLock.js +15 -7
  63. package/lib/lockfile/parseNpmLock.js.map +1 -1
  64. package/lib/lockfile/parsePnpmLock.d.ts +1 -1
  65. package/lib/lockfile/parsePnpmLock.js +14 -9
  66. package/lib/lockfile/parsePnpmLock.js.map +1 -1
  67. package/lib/lockfile/queryLockFile.d.ts +1 -1
  68. package/lib/lockfile/queryLockFile.js +11 -6
  69. package/lib/lockfile/queryLockFile.js.map +1 -1
  70. package/lib/lockfile/readYaml.js +17 -9
  71. package/lib/lockfile/readYaml.js.map +1 -1
  72. package/lib/lockfile/types.js +3 -2
  73. package/lib/lockfile/types.js.map +1 -1
  74. package/lib/logging.js +10 -6
  75. package/lib/logging.js.map +1 -1
  76. package/lib/paths.d.ts +4 -1
  77. package/lib/paths.js +60 -58
  78. package/lib/paths.js.map +1 -1
  79. package/lib/scope.js +30 -21
  80. package/lib/scope.js.map +1 -1
  81. package/lib/types/Catalogs.js +8 -3
  82. package/lib/types/Catalogs.js.map +1 -1
  83. package/lib/types/PackageGraph.d.ts +5 -1
  84. package/lib/types/PackageGraph.js +4 -3
  85. package/lib/types/PackageGraph.js.map +1 -1
  86. package/lib/types/PackageInfo.d.ts +1 -1
  87. package/lib/types/PackageInfo.js +3 -2
  88. package/lib/types/PackageInfo.js.map +1 -1
  89. package/lib/types/WorkspaceInfo.d.ts +3 -5
  90. package/lib/types/WorkspaceInfo.js +3 -2
  91. package/lib/types/WorkspaceInfo.js.map +1 -1
  92. package/lib/types/WorkspaceManager.js +4 -0
  93. package/lib/types/WorkspaceManager.js.map +1 -0
  94. package/lib/workspaces/catalogsToYaml.d.ts +1 -1
  95. package/lib/workspaces/catalogsToYaml.js +12 -10
  96. package/lib/workspaces/catalogsToYaml.js.map +1 -1
  97. package/lib/workspaces/findWorkspacePath.d.ts +2 -1
  98. package/lib/workspaces/findWorkspacePath.js +10 -12
  99. package/lib/workspaces/findWorkspacePath.js.map +1 -1
  100. package/lib/workspaces/getAllPackageJsonFiles.d.ts +10 -4
  101. package/lib/workspaces/getAllPackageJsonFiles.js +32 -22
  102. package/lib/workspaces/getAllPackageJsonFiles.js.map +1 -1
  103. package/lib/workspaces/getCatalogVersion.d.ts +1 -1
  104. package/lib/workspaces/getCatalogVersion.js +19 -32
  105. package/lib/workspaces/getCatalogVersion.js.map +1 -1
  106. package/lib/workspaces/getCatalogs.d.ts +8 -2
  107. package/lib/workspaces/getCatalogs.js +23 -15
  108. package/lib/workspaces/getCatalogs.js.map +1 -1
  109. package/lib/workspaces/getChangedPackages.d.ts +1 -1
  110. package/lib/workspaces/getChangedPackages.js +47 -30
  111. package/lib/workspaces/getChangedPackages.js.map +1 -1
  112. package/lib/workspaces/getPackagesByFiles.js +29 -24
  113. package/lib/workspaces/getPackagesByFiles.js.map +1 -1
  114. package/lib/workspaces/getWorkspaceInfos.d.ts +36 -0
  115. package/lib/workspaces/getWorkspaceInfos.js +60 -0
  116. package/lib/workspaces/getWorkspaceInfos.js.map +1 -0
  117. package/lib/workspaces/getWorkspaceManagerRoot.d.ts +16 -0
  118. package/lib/workspaces/getWorkspaceManagerRoot.js +32 -0
  119. package/lib/workspaces/getWorkspaceManagerRoot.js.map +1 -0
  120. package/lib/workspaces/getWorkspacePackagePaths.d.ts +17 -2
  121. package/lib/workspaces/getWorkspacePackagePaths.js +138 -24
  122. package/lib/workspaces/getWorkspacePackagePaths.js.map +1 -1
  123. package/lib/workspaces/getWorkspacePatterns.d.ts +11 -0
  124. package/lib/workspaces/getWorkspacePatterns.js +25 -0
  125. package/lib/workspaces/getWorkspacePatterns.js.map +1 -0
  126. package/lib/workspaces/implementations/WorkspaceUtilities.d.ts +27 -0
  127. package/lib/workspaces/implementations/WorkspaceUtilities.js +4 -0
  128. package/lib/workspaces/implementations/WorkspaceUtilities.js.map +1 -0
  129. package/lib/workspaces/implementations/getPackageJsonWorkspacePatterns.d.ts +9 -0
  130. package/lib/workspaces/implementations/getPackageJsonWorkspacePatterns.js +38 -0
  131. package/lib/workspaces/implementations/getPackageJsonWorkspacePatterns.js.map +1 -0
  132. package/lib/workspaces/implementations/getWorkspaceManagerAndRoot.d.ts +19 -5
  133. package/lib/workspaces/implementations/getWorkspaceManagerAndRoot.js +38 -40
  134. package/lib/workspaces/implementations/getWorkspaceManagerAndRoot.js.map +1 -1
  135. package/lib/workspaces/implementations/getWorkspaceUtilities.d.ts +4 -36
  136. package/lib/workspaces/implementations/getWorkspaceUtilities.js +35 -20
  137. package/lib/workspaces/implementations/getWorkspaceUtilities.js.map +1 -1
  138. package/lib/workspaces/implementations/index.d.ts +2 -2
  139. package/lib/workspaces/implementations/index.js +19 -7
  140. package/lib/workspaces/implementations/index.js.map +1 -1
  141. package/lib/workspaces/implementations/lerna.d.ts +2 -20
  142. package/lib/workspaces/implementations/lerna.js +77 -62
  143. package/lib/workspaces/implementations/lerna.js.map +1 -1
  144. package/lib/workspaces/implementations/npm.d.ts +3 -17
  145. package/lib/workspaces/implementations/npm.js +12 -43
  146. package/lib/workspaces/implementations/npm.js.map +1 -1
  147. package/lib/workspaces/implementations/pnpm.d.ts +2 -30
  148. package/lib/workspaces/implementations/pnpm.js +32 -89
  149. package/lib/workspaces/implementations/pnpm.js.map +1 -1
  150. package/lib/workspaces/implementations/rush.d.ts +2 -22
  151. package/lib/workspaces/implementations/rush.js +26 -69
  152. package/lib/workspaces/implementations/rush.js.map +1 -1
  153. package/lib/workspaces/implementations/yarn.d.ts +2 -35
  154. package/lib/workspaces/implementations/yarn.js +33 -85
  155. package/lib/workspaces/implementations/yarn.js.map +1 -1
  156. package/lib/workspaces/wrapWorkspaceUtility.d.ts +31 -0
  157. package/lib/workspaces/wrapWorkspaceUtility.js +47 -0
  158. package/lib/workspaces/wrapWorkspaceUtility.js.map +1 -0
  159. package/package.json +21 -12
  160. package/lib/getPackagePaths.d.ts +0 -10
  161. package/lib/getPackagePaths.js +0 -49
  162. package/lib/getPackagePaths.js.map +0 -1
  163. package/lib/infoFromPackageJson.d.ts +0 -17
  164. package/lib/infoFromPackageJson.js +0 -11
  165. package/lib/infoFromPackageJson.js.map +0 -1
  166. package/lib/lockfile/index.d.ts +0 -6
  167. package/lib/lockfile/index.js +0 -105
  168. package/lib/lockfile/index.js.map +0 -1
  169. package/lib/workspaces/WorkspaceManager.js +0 -3
  170. package/lib/workspaces/WorkspaceManager.js.map +0 -1
  171. package/lib/workspaces/getWorkspacePackageInfo.d.ts +0 -26
  172. package/lib/workspaces/getWorkspacePackageInfo.js +0 -76
  173. package/lib/workspaces/getWorkspacePackageInfo.js.map +0 -1
  174. package/lib/workspaces/getWorkspaceRoot.d.ts +0 -25
  175. package/lib/workspaces/getWorkspaceRoot.js +0 -35
  176. package/lib/workspaces/getWorkspaceRoot.js.map +0 -1
  177. package/lib/workspaces/getWorkspaces.d.ts +0 -20
  178. package/lib/workspaces/getWorkspaces.js +0 -39
  179. package/lib/workspaces/getWorkspaces.js.map +0 -1
  180. package/lib/workspaces/implementations/packageJsonWorkspaces.d.ts +0 -31
  181. package/lib/workspaces/implementations/packageJsonWorkspaces.js +0 -104
  182. package/lib/workspaces/implementations/packageJsonWorkspaces.js.map +0 -1
  183. package/lib/workspaces/listOfWorkspacePackageNames.d.ts +0 -5
  184. package/lib/workspaces/listOfWorkspacePackageNames.js +0 -11
  185. package/lib/workspaces/listOfWorkspacePackageNames.js.map +0 -1
  186. /package/lib/{workspaces → types}/WorkspaceManager.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"getWorkspacePackagePaths.js","sourceRoot":"","sources":["../../src/workspaces/getWorkspacePackagePaths.ts"],"names":[],"mappings":";;;AAAA,uDAAsF;AAEtF;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,GAAW;IAClD,MAAM,KAAK,GAAG,IAAA,uCAAqB,EAAC,GAAG,CAAC,CAAC;IACzC,OAAO,KAAK,EAAE,wBAAwB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAHD,4DAGC;AAED;;;GAGG;AACI,KAAK,UAAU,6BAA6B,CAAC,GAAW;IAC7D,MAAM,KAAK,GAAG,IAAA,uCAAqB,EAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IAED,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE;QACxC,MAAM,WAAW,GAAG,IAAA,4CAA0B,EAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,aAAa,WAAW,4CAA4C,CAAC,CAAC;KAC7F;IAED,OAAO,KAAK,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAbD,sEAaC"}
1
+ {"version":3,"sources":["../../src/workspaces/getWorkspacePackagePaths.ts"],"sourcesContent":["import glob, { type Options as GlobOptions } from \"fast-glob\";\nimport path from \"path\";\nimport type { WorkspaceManager } from \"../types/WorkspaceManager.js\";\nimport { getWorkspaceUtilities, type WorkspaceManagerAndRoot } from \"./implementations\";\nimport { isCachingEnabled } from \"../isCachingEnabled.js\";\nimport { wrapWorkspaceUtility, wrapAsyncWorkspaceUtility } from \"./wrapWorkspaceUtility.js\";\n\n/** Mapping from root path to resolved package paths, or undefined if there was an error */\nconst packagePathsCache = new Map<string, string[] | undefined>();\n\nconst globOptions: GlobOptions = {\n absolute: true,\n ignore: [\"**/node_modules/**\", \"**/__fixtures__/**\"],\n stats: false,\n};\n\n/**\n * Get a list of package folder paths in the monorepo. The list of included packages is based on\n * the manager's config file and matching package folders (which must contain package.json) on disk.\n *\n * (The list of package paths is cached per monorepo root if caching is enabled.)\n *\n * @param managerOverride Workspace/monorepo manager to use instead of auto-detecting\n *\n * @returns Package paths, or undefined if there's any issue\n * (logs verbose warnings instead of throwing on error)\n */\nexport function getWorkspacePackagePaths(cwd: string, managerOverride?: WorkspaceManager): string[] | undefined {\n return wrapWorkspaceUtility({\n cwd,\n managerOverride,\n description: \"workspace package paths\",\n impl: ({ manager, root }) => {\n const initialResult = getInitialPathsOrGlobs({ manager, root });\n if (!initialResult || \"resolvedPaths\" in initialResult) {\n return initialResult?.resolvedPaths;\n }\n\n try {\n const globResults = glob.sync(initialResult.globs, { cwd: root, ...globOptions });\n return resolveAndCacheGlobResults({ root, globResults });\n } catch (err) {\n isCachingEnabled() && packagePathsCache.set(root, undefined);\n throw err;\n }\n },\n });\n}\n\n/**\n * Get a list of package folder paths in the monorepo. The list of included packages is based on\n * the manager's config file and matching package folders (which must contain package.json) on disk.\n *\n * (The list of package paths is cached per monorepo root if caching is enabled.)\n *\n * @param managerOverride Workspace/monorepo manager to use instead of auto-detecting\n *\n * @returns Package paths, or undefined if there's any issue\n * (logs verbose warnings instead of throwing on error)\n */\nexport async function getWorkspacePackagePathsAsync(\n cwd: string,\n managerOverride?: WorkspaceManager\n): Promise<string[] | undefined> {\n return wrapAsyncWorkspaceUtility({\n cwd,\n managerOverride,\n description: \"workspace package paths\",\n impl: async ({ manager, root }) => {\n const initialResult = getInitialPathsOrGlobs({ manager, root });\n if (!initialResult || \"resolvedPaths\" in initialResult) {\n return initialResult?.resolvedPaths;\n }\n\n try {\n const globResults = await glob(initialResult.globs, { cwd: root, ...globOptions });\n return resolveAndCacheGlobResults({ root, globResults });\n } catch (err) {\n isCachingEnabled() && packagePathsCache.set(root, undefined);\n throw err;\n }\n },\n });\n}\n\n/**\n * Handles the shared synchronous initial logic:\n * - Used the cached result if available\n * - Else, call `getWorkspacePackagePatterns`\n * - If the results are relative paths (not patterns), resolve, cache, and return them\n * - Else, return the prepared globs for sync or async resolution as appropriate.\n */\nfunction getInitialPathsOrGlobs(\n params: WorkspaceManagerAndRoot\n): { globs: string[] } | { resolvedPaths: string[] } | undefined {\n const canCache = isCachingEnabled();\n if (canCache && packagePathsCache.has(params.root)) {\n // Return the cached result, even if it was a failure\n const cachedPaths = packagePathsCache.get(params.root);\n return cachedPaths && { resolvedPaths: cachedPaths };\n }\n\n const managerUtilities = getWorkspaceUtilities(params.manager);\n const managerSetting = managerUtilities.getWorkspacePatterns({ root: params.root });\n\n if (managerSetting?.type === \"pattern\") {\n return {\n globs: managerSetting.patterns.map((p) => path.join(p, \"package.json\").replace(/\\\\/g, \"/\")),\n };\n }\n\n if (managerSetting?.type === \"path\") {\n const resolvedPaths = managerSetting.patterns.map((p) => path.resolve(params.root, p));\n if (canCache) {\n packagePathsCache.set(params.root, resolvedPaths);\n }\n return { resolvedPaths };\n }\n\n return undefined;\n}\n\n/**\n * Given the results from globbing package.json files, resolve to package folder paths\n * and cache the results.\n */\nfunction resolveAndCacheGlobResults(params: { root: string; globResults: string[] }) {\n const { root, globResults } = params;\n const resolvedPaths = globResults.map((packageJsonPath) => {\n const packagePath = path.dirname(packageJsonPath);\n return path.sep === \"/\" ? packagePath : packagePath.replace(/\\//g, path.sep);\n });\n if (isCachingEnabled()) {\n packagePathsCache.set(root, resolvedPaths);\n }\n return resolvedPaths;\n}\n"],"names":["getWorkspacePackagePaths","getWorkspacePackagePathsAsync","packagePathsCache","Map","globOptions","absolute","ignore","stats","cwd","managerOverride","wrapWorkspaceUtility","description","impl","manager","root","initialResult","getInitialPathsOrGlobs","resolvedPaths","globResults","glob","sync","globs","resolveAndCacheGlobResults","err","isCachingEnabled","set","undefined","wrapAsyncWorkspaceUtility","params","canCache","has","cachedPaths","get","managerUtilities","getWorkspaceUtilities","managerSetting","getWorkspacePatterns","type","patterns","map","p","path","join","replace","resolve","packageJsonPath","packagePath","dirname","sep"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { WorkspaceManager } from "../types/WorkspaceManager.js";
2
+ /**
3
+ * Get the original glob patterns from the manager's workspaces config.
4
+ * (Calculation of the workspace manager and root for `cwd` is cached internally.)
5
+ *
6
+ * @param managerOverride Workspace/monorepo manager to use instead of auto-detecting
7
+ *
8
+ * @returns Array of patterns, or undefined if not available
9
+ * (logs verbose warnings instead of throwing on error)
10
+ */
11
+ export declare function getWorkspacePatterns(cwd: string, managerOverride?: WorkspaceManager): string[] | undefined;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getWorkspacePatterns", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getWorkspacePatterns;
9
+ }
10
+ });
11
+ const _implementations = require("./implementations");
12
+ const _wrapWorkspaceUtility = require("./wrapWorkspaceUtility.js");
13
+ function getWorkspacePatterns(cwd, managerOverride) {
14
+ return (0, _wrapWorkspaceUtility.wrapWorkspaceUtility)({
15
+ cwd,
16
+ managerOverride,
17
+ description: "workspace patterns",
18
+ impl: ({ manager, root })=>{
19
+ const managerUtilities = (0, _implementations.getWorkspaceUtilities)(manager);
20
+ return managerUtilities.getWorkspacePatterns({
21
+ root
22
+ })?.patterns;
23
+ }
24
+ });
25
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/workspaces/getWorkspacePatterns.ts"],"sourcesContent":["import type { WorkspaceManager } from \"../types/WorkspaceManager.js\";\nimport { getWorkspaceUtilities } from \"./implementations\";\nimport { wrapWorkspaceUtility } from \"./wrapWorkspaceUtility.js\";\n\n/**\n * Get the original glob patterns from the manager's workspaces config.\n * (Calculation of the workspace manager and root for `cwd` is cached internally.)\n *\n * @param managerOverride Workspace/monorepo manager to use instead of auto-detecting\n *\n * @returns Array of patterns, or undefined if not available\n * (logs verbose warnings instead of throwing on error)\n */\nexport function getWorkspacePatterns(cwd: string, managerOverride?: WorkspaceManager): string[] | undefined {\n return wrapWorkspaceUtility({\n cwd,\n managerOverride,\n description: \"workspace patterns\",\n impl: ({ manager, root }) => {\n const managerUtilities = getWorkspaceUtilities(manager);\n return managerUtilities.getWorkspacePatterns({ root })?.patterns;\n },\n });\n}\n"],"names":["getWorkspacePatterns","cwd","managerOverride","wrapWorkspaceUtility","description","impl","manager","root","managerUtilities","getWorkspaceUtilities","patterns"],"mappings":";;;;+BAagBA;;;eAAAA;;;iCAZsB;sCACD;AAW9B,SAASA,qBAAqBC,GAAW,EAAEC,eAAkC;IAClF,OAAOC,IAAAA,0CAAoB,EAAC;QAC1BF;QACAC;QACAE,aAAa;QACbC,MAAM,CAAC,EAAEC,OAAO,EAAEC,IAAI,EAAE;YACtB,MAAMC,mBAAmBC,IAAAA,sCAAqB,EAACH;YAC/C,OAAOE,iBAAiBR,oBAAoB,CAAC;gBAAEO;YAAK,IAAIG;QAC1D;IACF;AACF"}
@@ -0,0 +1,27 @@
1
+ import type { Catalogs } from "../../types/Catalogs.js";
2
+ /**
3
+ * Manager-specific implementations used internally by other workspace/monorepo utilities.
4
+ */
5
+ export interface WorkspaceUtilities {
6
+ /**
7
+ * Get the original glob patterns or package paths from the manager's workspaces config.
8
+ * (If workspaces are defined in package.json `workspaces`, use `getPackageJsonWorkspacePatterns`.)
9
+ *
10
+ * @returns Object with the patterns, or undefined if not available (or it can throw
11
+ * if the patterns aren't available or there's an error)
12
+ */
13
+ getWorkspacePatterns: (params: {
14
+ root: string;
15
+ }) => {
16
+ patterns: string[];
17
+ /** "pattern" means the strings may be globs, "path" means they're relative paths */
18
+ type: "pattern" | "path";
19
+ } | undefined;
20
+ /**
21
+ * Get version catalogs, if supported by the manager (only pnpm and yarn v4 as of writing).
22
+ * Returns undefined if not defined or not supported, or can throw an error.
23
+ */
24
+ getCatalogs?: (params: {
25
+ root: string;
26
+ }) => Catalogs | undefined;
27
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type { WorkspaceUtilities } from "./WorkspaceUtilities.js";
2
+ /**
3
+ * Default implementation of `WorkspaceUtilities.getWorkspacePatterns`:
4
+ * read the `workspaces` field from package.json.
5
+ *
6
+ * Throws an error if the `workspaces` field is not found or invalid.
7
+ * (Note that this is expected for single-package repos.)
8
+ */
9
+ export declare const getPackageJsonWorkspacePatterns: WorkspaceUtilities["getWorkspacePatterns"];
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getPackageJsonWorkspacePatterns", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getPackageJsonWorkspacePatterns;
9
+ }
10
+ });
11
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ const getPackageJsonWorkspacePatterns = ({ root })=>{
19
+ const packageJsonFile = _path.default.join(root, "package.json");
20
+ let packageJson;
21
+ try {
22
+ packageJson = JSON.parse(_fs.default.readFileSync(packageJsonFile, "utf-8"));
23
+ } catch {
24
+ throw new Error(`Could not read or parse ${packageJsonFile}`);
25
+ }
26
+ const { workspaces } = packageJson;
27
+ if (!workspaces) {
28
+ throw new Error(`Could not find "workspaces" in ${packageJsonFile} (expected if this is not a monorepo)`);
29
+ }
30
+ const patterns = Array.isArray(workspaces) ? workspaces : workspaces?.packages;
31
+ if (!patterns) {
32
+ throw new Error(`"workspaces" in ${packageJsonFile} does not define "packages"`);
33
+ }
34
+ return {
35
+ patterns,
36
+ type: "pattern"
37
+ };
38
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/workspaces/implementations/getPackageJsonWorkspacePatterns.ts"],"sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport type { PackageInfo } from \"../../types/PackageInfo.js\";\nimport type { WorkspaceUtilities } from \"./WorkspaceUtilities.js\";\n\ntype PackageJsonWithWorkspaces = Pick<PackageInfo, \"workspaces\">;\n\n/**\n * Default implementation of `WorkspaceUtilities.getWorkspacePatterns`:\n * read the `workspaces` field from package.json.\n *\n * Throws an error if the `workspaces` field is not found or invalid.\n * (Note that this is expected for single-package repos.)\n */\nexport const getPackageJsonWorkspacePatterns: WorkspaceUtilities[\"getWorkspacePatterns\"] = ({ root }) => {\n const packageJsonFile = path.join(root, \"package.json\");\n\n let packageJson: PackageJsonWithWorkspaces;\n try {\n packageJson = JSON.parse(fs.readFileSync(packageJsonFile, \"utf-8\")) as PackageJsonWithWorkspaces;\n } catch {\n throw new Error(`Could not read or parse ${packageJsonFile}`);\n }\n\n const { workspaces } = packageJson;\n if (!workspaces) {\n throw new Error(`Could not find \"workspaces\" in ${packageJsonFile} (expected if this is not a monorepo)`);\n }\n\n const patterns = Array.isArray(workspaces) ? workspaces : workspaces?.packages;\n if (!patterns) {\n throw new Error(`\"workspaces\" in ${packageJsonFile} does not define \"packages\"`);\n }\n return { patterns, type: \"pattern\" };\n};\n"],"names":["getPackageJsonWorkspacePatterns","root","packageJsonFile","path","join","packageJson","JSON","parse","fs","readFileSync","Error","workspaces","patterns","Array","isArray","packages","type"],"mappings":";;;;+BAcaA;;;eAAAA;;;2DAdE;6DACE;;;;;;AAaV,MAAMA,kCAA8E,CAAC,EAAEC,IAAI,EAAE;IAClG,MAAMC,kBAAkBC,aAAI,CAACC,IAAI,CAACH,MAAM;IAExC,IAAII;IACJ,IAAI;QACFA,cAAcC,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACP,iBAAiB;IAC5D,EAAE,OAAM;QACN,MAAM,IAAIQ,MAAM,CAAC,wBAAwB,EAAER,iBAAiB;IAC9D;IAEA,MAAM,EAAES,UAAU,EAAE,GAAGN;IACvB,IAAI,CAACM,YAAY;QACf,MAAM,IAAID,MAAM,CAAC,+BAA+B,EAAER,gBAAgB,qCAAqC,CAAC;IAC1G;IAEA,MAAMU,WAAWC,MAAMC,OAAO,CAACH,cAAcA,aAAaA,YAAYI;IACtE,IAAI,CAACH,UAAU;QACb,MAAM,IAAIF,MAAM,CAAC,gBAAgB,EAAER,gBAAgB,2BAA2B,CAAC;IACjF;IACA,OAAO;QAAEU;QAAUI,MAAM;IAAU;AACrC"}
@@ -1,10 +1,23 @@
1
- import { WorkspaceManager } from "../WorkspaceManager";
1
+ import { type WorkspaceManager } from "../../types/WorkspaceManager.js";
2
2
  export interface WorkspaceManagerAndRoot {
3
3
  /** Workspace/monorepo manager name */
4
4
  manager: WorkspaceManager;
5
5
  /** Monorepo root, where the manager configuration file is located */
6
6
  root: string;
7
7
  }
8
+ /**
9
+ * Files indicating the monorepo root for each manager.
10
+ *
11
+ * DO NOT REORDER! The order of keys determines the precedence of the files, which is
12
+ * important for cases like lerna where lerna.json and e.g. yarn.lock may both exist.
13
+ */
14
+ export declare const managerFiles: {
15
+ readonly lerna: "lerna.json";
16
+ readonly rush: "rush.json";
17
+ readonly yarn: "yarn.lock";
18
+ readonly pnpm: "pnpm-workspace.yaml";
19
+ readonly npm: "package-lock.json";
20
+ };
8
21
  /**
9
22
  * Get the preferred workspace/monorepo manager based on `process.env.PREFERRED_WORKSPACE_MANAGER`
10
23
  * (if valid).
@@ -12,11 +25,12 @@ export interface WorkspaceManagerAndRoot {
12
25
  export declare function getPreferredWorkspaceManager(): WorkspaceManager | undefined;
13
26
  /**
14
27
  * Get the workspace/monorepo manager name and root directory for `cwd`, with caching.
15
- * Also respects the `process.env.PREFERRED_WORKSPACE_MANAGER` override, provided the relevant
16
- * manager file exists.
28
+ *
17
29
  * @param cwd Directory to search up from
18
30
  * @param cache Optional override cache for testing
19
- * @param preferredManager Optional override manager (if provided, only searches for this manager's file)
31
+ * @param managerOverride Optional override manager (if provided, only searches for this manager's file).
32
+ * Also respects `process.env.PREFERRED_WORKSPACE_MANAGER`.
33
+ *
20
34
  * @returns Workspace/monorepo manager and root, or undefined if it can't be determined
21
35
  */
22
- export declare function getWorkspaceManagerAndRoot(cwd: string, cache?: Map<string, WorkspaceManagerAndRoot | undefined>, preferredManager?: WorkspaceManager): WorkspaceManagerAndRoot | undefined;
36
+ export declare function getWorkspaceManagerAndRoot(cwd: string, cache?: Map<string, WorkspaceManagerAndRoot | undefined>, managerOverride?: WorkspaceManager): WorkspaceManagerAndRoot | undefined;
@@ -1,64 +1,62 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getWorkspaceManagerAndRoot = exports.getPreferredWorkspaceManager = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const paths_1 = require("../../paths");
9
- const isCachingEnabled_1 = require("../../isCachingEnabled");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get getPreferredWorkspaceManager () {
13
+ return getPreferredWorkspaceManager;
14
+ },
15
+ get getWorkspaceManagerAndRoot () {
16
+ return getWorkspaceManagerAndRoot;
17
+ },
18
+ get managerFiles () {
19
+ return managerFiles;
20
+ }
21
+ });
22
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
23
+ const _isCachingEnabled = require("../../isCachingEnabled.js");
24
+ const _paths = require("../../paths.js");
25
+ function _interop_require_default(obj) {
26
+ return obj && obj.__esModule ? obj : {
27
+ default: obj
28
+ };
29
+ }
10
30
  const workspaceCache = new Map();
11
- /**
12
- * Files indicating the monorepo root for each manager.
13
- *
14
- * DO NOT REORDER! The order of keys determines the precedence of the files, which is
15
- * important for cases like lerna where lerna.json and e.g. yarn.lock may both exist.
16
- */
17
31
  const managerFiles = {
18
32
  // DO NOT REORDER! (see above)
19
33
  lerna: "lerna.json",
20
34
  rush: "rush.json",
21
35
  yarn: "yarn.lock",
22
36
  pnpm: "pnpm-workspace.yaml",
23
- npm: "package-lock.json",
37
+ npm: "package-lock.json"
24
38
  };
25
- /**
26
- * Get the preferred workspace/monorepo manager based on `process.env.PREFERRED_WORKSPACE_MANAGER`
27
- * (if valid).
28
- */
29
39
  function getPreferredWorkspaceManager() {
30
40
  const preferred = process.env.PREFERRED_WORKSPACE_MANAGER;
31
41
  return preferred && managerFiles[preferred] ? preferred : undefined;
32
42
  }
33
- exports.getPreferredWorkspaceManager = getPreferredWorkspaceManager;
34
- /**
35
- * Get the workspace/monorepo manager name and root directory for `cwd`, with caching.
36
- * Also respects the `process.env.PREFERRED_WORKSPACE_MANAGER` override, provided the relevant
37
- * manager file exists.
38
- * @param cwd Directory to search up from
39
- * @param cache Optional override cache for testing
40
- * @param preferredManager Optional override manager (if provided, only searches for this manager's file)
41
- * @returns Workspace/monorepo manager and root, or undefined if it can't be determined
42
- */
43
- function getWorkspaceManagerAndRoot(cwd, cache, preferredManager) {
43
+ function getWorkspaceManagerAndRoot(cwd, cache, managerOverride) {
44
44
  cache = cache || workspaceCache;
45
- if ((0, isCachingEnabled_1.isCachingEnabled)() && cache.has(cwd)) {
45
+ if ((0, _isCachingEnabled.isCachingEnabled)() && cache.has(cwd)) {
46
46
  return cache.get(cwd);
47
47
  }
48
- preferredManager = preferredManager || getPreferredWorkspaceManager();
49
- const managerFile = (0, paths_1.searchUp)((preferredManager && managerFiles[preferredManager]) || Object.values(managerFiles), cwd);
48
+ managerOverride ?? (managerOverride = getPreferredWorkspaceManager());
49
+ const filesToSearch = managerOverride ? managerFiles[managerOverride] : Object.values(managerFiles);
50
+ const managerFile = (0, _paths.searchUp)(filesToSearch, cwd);
50
51
  if (managerFile) {
51
- const managerFileName = path_1.default.basename(managerFile);
52
+ const managerFileName = _path.default.basename(managerFile);
52
53
  cache.set(cwd, {
53
- manager: Object.keys(managerFiles).find((name) => managerFiles[name] === managerFileName),
54
- root: path_1.default.dirname(managerFile),
54
+ manager: managerOverride || Object.keys(managerFiles).find((name)=>managerFiles[name] === managerFileName),
55
+ root: _path.default.dirname(managerFile)
55
56
  });
56
- }
57
- else {
57
+ } else {
58
58
  // Avoid searching again if no file was found
59
59
  cache.set(cwd, undefined);
60
60
  }
61
61
  return cache.get(cwd);
62
62
  }
63
- exports.getWorkspaceManagerAndRoot = getWorkspaceManagerAndRoot;
64
- //# sourceMappingURL=getWorkspaceManagerAndRoot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getWorkspaceManagerAndRoot.js","sourceRoot":"","sources":["../../../src/workspaces/implementations/getWorkspaceManagerAndRoot.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,uCAAuC;AAEvC,6DAA0D;AAQ1D,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+C,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,YAAY,GAAG;IACnB,8BAA8B;IAC9B,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,qBAAqB;IAC3B,GAAG,EAAE,mBAAmB;CACzB,CAAC;AAEF;;;GAGG;AACH,SAAgB,4BAA4B;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2D,CAAC;IAC1F,OAAO,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAHD,oEAGC;AAED;;;;;;;;GAQG;AACH,SAAgB,0BAA0B,CACxC,GAAW,EACX,KAAwD,EACxD,gBAAmC;IAEnC,KAAK,GAAG,KAAK,IAAI,cAAc,CAAC;IAChC,IAAI,IAAA,mCAAgB,GAAE,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACxC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,gBAAgB,GAAG,gBAAgB,IAAI,4BAA4B,EAAE,CAAC;IACtE,MAAM,WAAW,GAAG,IAAA,gBAAQ,EAC1B,CAAC,gBAAgB,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EACnF,GAAG,CACJ,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,MAAM,eAAe,GAAG,cAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACb,OAAO,EAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAwB,CAAC,IAAI,CAC7D,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,eAAe,CAChD;YACF,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SAChC,CAAC,CAAC;KACJ;SAAM;QACL,6CAA6C;QAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KAC3B;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AA9BD,gEA8BC"}
1
+ {"version":3,"sources":["../../../src/workspaces/implementations/getWorkspaceManagerAndRoot.ts"],"sourcesContent":["import path from \"path\";\nimport { isCachingEnabled } from \"../../isCachingEnabled.js\";\nimport { searchUp } from \"../../paths.js\";\nimport { type WorkspaceManager } from \"../../types/WorkspaceManager.js\";\n\nexport interface WorkspaceManagerAndRoot {\n /** Workspace/monorepo manager name */\n manager: WorkspaceManager;\n /** Monorepo root, where the manager configuration file is located */\n root: string;\n}\n\nconst workspaceCache = new Map<string, WorkspaceManagerAndRoot | undefined>();\n\n/**\n * Files indicating the monorepo root for each manager.\n *\n * DO NOT REORDER! The order of keys determines the precedence of the files, which is\n * important for cases like lerna where lerna.json and e.g. yarn.lock may both exist.\n */\nexport const managerFiles = {\n // DO NOT REORDER! (see above)\n lerna: \"lerna.json\",\n rush: \"rush.json\",\n yarn: \"yarn.lock\",\n pnpm: \"pnpm-workspace.yaml\",\n npm: \"package-lock.json\",\n} as const;\n\n/**\n * Get the preferred workspace/monorepo manager based on `process.env.PREFERRED_WORKSPACE_MANAGER`\n * (if valid).\n */\nexport function getPreferredWorkspaceManager(): WorkspaceManager | undefined {\n const preferred = process.env.PREFERRED_WORKSPACE_MANAGER as WorkspaceManager | undefined;\n return preferred && managerFiles[preferred] ? preferred : undefined;\n}\n\n/**\n * Get the workspace/monorepo manager name and root directory for `cwd`, with caching.\n *\n * @param cwd Directory to search up from\n * @param cache Optional override cache for testing\n * @param managerOverride Optional override manager (if provided, only searches for this manager's file).\n * Also respects `process.env.PREFERRED_WORKSPACE_MANAGER`.\n *\n * @returns Workspace/monorepo manager and root, or undefined if it can't be determined\n */\nexport function getWorkspaceManagerAndRoot(\n cwd: string,\n cache?: Map<string, WorkspaceManagerAndRoot | undefined>,\n managerOverride?: WorkspaceManager\n): WorkspaceManagerAndRoot | undefined {\n cache = cache || workspaceCache;\n if (isCachingEnabled() && cache.has(cwd)) {\n return cache.get(cwd);\n }\n\n managerOverride ??= getPreferredWorkspaceManager();\n const filesToSearch = managerOverride ? managerFiles[managerOverride] : Object.values(managerFiles);\n const managerFile = searchUp(filesToSearch, cwd);\n\n if (managerFile) {\n const managerFileName = path.basename(managerFile);\n cache.set(cwd, {\n manager:\n managerOverride ||\n (Object.keys(managerFiles) as WorkspaceManager[]).find((name) => managerFiles[name] === managerFileName)!,\n root: path.dirname(managerFile),\n });\n } else {\n // Avoid searching again if no file was found\n cache.set(cwd, undefined);\n }\n\n return cache.get(cwd);\n}\n"],"names":["getPreferredWorkspaceManager","getWorkspaceManagerAndRoot","managerFiles","workspaceCache","Map","lerna","rush","yarn","pnpm","npm","preferred","process","env","PREFERRED_WORKSPACE_MANAGER","undefined","cwd","cache","managerOverride","isCachingEnabled","has","get","filesToSearch","Object","values","managerFile","searchUp","managerFileName","path","basename","set","manager","keys","find","name","root","dirname"],"mappings":";;;;;;;;;;;QAiCgBA;eAAAA;;QAeAC;eAAAA;;QA5BHC;eAAAA;;;6DApBI;kCACgB;uBACR;;;;;;AAUzB,MAAMC,iBAAiB,IAAIC;AAQpB,MAAMF,eAAe;IAC1B,8BAA8B;IAC9BG,OAAO;IACPC,MAAM;IACNC,MAAM;IACNC,MAAM;IACNC,KAAK;AACP;AAMO,SAAST;IACd,MAAMU,YAAYC,QAAQC,GAAG,CAACC,2BAA2B;IACzD,OAAOH,aAAaR,YAAY,CAACQ,UAAU,GAAGA,YAAYI;AAC5D;AAYO,SAASb,2BACdc,GAAW,EACXC,KAAwD,EACxDC,eAAkC;IAElCD,QAAQA,SAASb;IACjB,IAAIe,IAAAA,kCAAgB,OAAMF,MAAMG,GAAG,CAACJ,MAAM;QACxC,OAAOC,MAAMI,GAAG,CAACL;IACnB;IAEAE,oBAAAA,kBAAoBjB;IACpB,MAAMqB,gBAAgBJ,kBAAkBf,YAAY,CAACe,gBAAgB,GAAGK,OAAOC,MAAM,CAACrB;IACtF,MAAMsB,cAAcC,IAAAA,eAAQ,EAACJ,eAAeN;IAE5C,IAAIS,aAAa;QACf,MAAME,kBAAkBC,aAAI,CAACC,QAAQ,CAACJ;QACtCR,MAAMa,GAAG,CAACd,KAAK;YACbe,SACEb,mBACA,AAACK,OAAOS,IAAI,CAAC7B,cAAqC8B,IAAI,CAAC,CAACC,OAAS/B,YAAY,CAAC+B,KAAK,KAAKP;YAC1FQ,MAAMP,aAAI,CAACQ,OAAO,CAACX;QACrB;IACF,OAAO;QACL,6CAA6C;QAC7CR,MAAMa,GAAG,CAACd,KAAKD;IACjB;IAEA,OAAOE,MAAMI,GAAG,CAACL;AACnB"}
@@ -1,38 +1,6 @@
1
- import type { Catalogs } from "../../types/Catalogs";
2
- import type { WorkspaceInfos } from "../../types/WorkspaceInfo";
3
- export interface WorkspaceUtilities {
4
- /**
5
- * Get an array of paths to packages ("workspaces") in the monorepo, based on the
6
- * manager's config file.
7
- * @returns Array of monorepo package paths, or an empty array on error
8
- */
9
- getWorkspacePackagePaths: (cwd: string) => string[];
10
- /**
11
- * Get an array of paths to packages ("workspaces") in the monorepo, based on the
12
- * manager's config file.
13
- * @returns Array of monorepo package paths, or an empty array on error
14
- */
15
- getWorkspacePackagePathsAsync?: (cwd: string) => Promise<string[]>;
16
- /**
17
- * Get an array with names, paths, and package.json contents for each package ("workspace")
18
- * in a monorepo.
19
- * @returns Array of monorepo package infos, or an empty array on error
20
- */
21
- getWorkspaces: (cwd: string) => WorkspaceInfos;
22
- /**
23
- * Get an array with names, paths, and package.json contents for each package ("workspace")
24
- * in a monorepo.
25
- * @returns Array of monorepo package infos, or an empty array on error
26
- */
27
- getWorkspacesAsync: (cwd: string) => Promise<WorkspaceInfos>;
28
- /**
29
- * Get version catalogs, if supported by the manager (only pnpm and yarn v4 as of writing).
30
- */
31
- getCatalogs?: (cwd: string) => Catalogs | undefined;
32
- }
1
+ import type { WorkspaceManager } from "../../types/WorkspaceManager.js";
2
+ import type { WorkspaceUtilities } from "./WorkspaceUtilities.js";
33
3
  /**
34
- * Get utility implementations for the workspace/monorepo manager of `cwd`.
35
- * It will search up from `cwd` to find a manager file and monorepo root, with caching.
36
- * Returns undefined if the manager can't be determined.
4
+ * Get utility implementations for the given workspace/monorepo manager.
37
5
  */
38
- export declare function getWorkspaceUtilities(cwd: string): WorkspaceUtilities | undefined;
6
+ export declare function getWorkspaceUtilities(manager: WorkspaceManager): WorkspaceUtilities;
@@ -1,26 +1,41 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWorkspaceUtilities = void 0;
4
- const getWorkspaceManagerAndRoot_1 = require("./getWorkspaceManagerAndRoot");
5
- /**
6
- * Get utility implementations for the workspace/monorepo manager of `cwd`.
7
- * It will search up from `cwd` to find a manager file and monorepo root, with caching.
8
- * Returns undefined if the manager can't be determined.
9
- */
10
- function getWorkspaceUtilities(cwd) {
11
- const manager = (0, getWorkspaceManagerAndRoot_1.getWorkspaceManagerAndRoot)(cwd)?.manager;
12
- switch (manager) {
13
- case "yarn":
14
- return require("./yarn");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getWorkspaceUtilities", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getWorkspaceUtilities;
9
+ }
10
+ });
11
+ const utils = {};
12
+ function getWorkspaceUtilities(manager) {
13
+ switch(manager){
14
+ case "npm":
15
+ var // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
16
+ _utils;
17
+ (_utils = utils).npm ?? (_utils.npm = require("./npm").npmUtilities);
18
+ break;
15
19
  case "pnpm":
16
- return require("./pnpm");
20
+ var // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
21
+ _utils1;
22
+ (_utils1 = utils).pnpm ?? (_utils1.pnpm = require("./pnpm").pnpmUtilities);
23
+ break;
24
+ case "yarn":
25
+ var // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
26
+ _utils2;
27
+ (_utils2 = utils).yarn ?? (_utils2.yarn = require("./yarn").yarnUtilities);
28
+ break;
17
29
  case "rush":
18
- return require("./rush");
19
- case "npm":
20
- return require("./npm");
30
+ var // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
31
+ _utils3;
32
+ (_utils3 = utils).rush ?? (_utils3.rush = require("./rush").rushUtilities);
33
+ break;
21
34
  case "lerna":
22
- return require("./lerna");
35
+ var // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
36
+ _utils4;
37
+ (_utils4 = utils).lerna ?? (_utils4.lerna = require("./lerna").lernaUtilities);
38
+ break;
23
39
  }
40
+ return utils[manager];
24
41
  }
25
- exports.getWorkspaceUtilities = getWorkspaceUtilities;
26
- //# sourceMappingURL=getWorkspaceUtilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getWorkspaceUtilities.js","sourceRoot":"","sources":["../../../src/workspaces/implementations/getWorkspaceUtilities.ts"],"names":[],"mappings":";;;AAEA,6EAA0E;AAuC1E;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,MAAM,OAAO,GAAG,IAAA,uDAA0B,EAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEzD,QAAQ,OAAO,EAAE;QACf,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,QAAQ,CAAyB,CAAC;QAEnD,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,QAAQ,CAAyB,CAAC;QAEnD,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,QAAQ,CAAyB,CAAC;QAEnD,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,OAAO,CAAwB,CAAC;QAEjD,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,SAAS,CAA0B,CAAC;KACtD;AACH,CAAC;AAnBD,sDAmBC"}
1
+ {"version":3,"sources":["../../../src/workspaces/implementations/getWorkspaceUtilities.ts"],"sourcesContent":["import type { WorkspaceManager } from \"../../types/WorkspaceManager.js\";\nimport type { WorkspaceUtilities } from \"./WorkspaceUtilities.js\";\n\nconst utils: Partial<Record<WorkspaceManager, WorkspaceUtilities>> = {};\n\n/**\n * Get utility implementations for the given workspace/monorepo manager.\n */\nexport function getWorkspaceUtilities(manager: WorkspaceManager): WorkspaceUtilities {\n switch (manager) {\n case \"npm\":\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n utils.npm ??= (require(\"./npm\") as typeof import(\"./npm\")).npmUtilities;\n break;\n\n case \"pnpm\":\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n utils.pnpm ??= (require(\"./pnpm\") as typeof import(\"./pnpm\")).pnpmUtilities;\n break;\n\n case \"yarn\":\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n utils.yarn ??= (require(\"./yarn\") as typeof import(\"./yarn\")).yarnUtilities;\n break;\n\n case \"rush\":\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n utils.rush ??= (require(\"./rush\") as typeof import(\"./rush\")).rushUtilities;\n break;\n\n case \"lerna\":\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n utils.lerna ??= (require(\"./lerna\") as typeof import(\"./lerna\")).lernaUtilities;\n break;\n }\n\n return utils[manager]!;\n}\n"],"names":["getWorkspaceUtilities","utils","manager","npm","require","npmUtilities","pnpm","pnpmUtilities","yarn","yarnUtilities","rush","rushUtilities","lerna","lernaUtilities"],"mappings":";;;;+BAQgBA;;;eAAAA;;;AALhB,MAAMC,QAA+D,CAAC;AAK/D,SAASD,sBAAsBE,OAAyB;IAC7D,OAAQA;QACN,KAAK;gBACH,iJAAiJ;YACjJD;YAAAA,CAAAA,SAAAA,OAAME,GAAG,KAATF,OAAME,GAAG,GAAK,AAACC,QAAQ,SAAoCC,YAAY;YACvE;QAEF,KAAK;gBACH,iJAAiJ;YACjJJ;YAAAA,CAAAA,UAAAA,OAAMK,IAAI,KAAVL,QAAMK,IAAI,GAAK,AAACF,QAAQ,UAAsCG,aAAa;YAC3E;QAEF,KAAK;gBACH,iJAAiJ;YACjJN;YAAAA,CAAAA,UAAAA,OAAMO,IAAI,KAAVP,QAAMO,IAAI,GAAK,AAACJ,QAAQ,UAAsCK,aAAa;YAC3E;QAEF,KAAK;gBACH,iJAAiJ;YACjJR;YAAAA,CAAAA,UAAAA,OAAMS,IAAI,KAAVT,QAAMS,IAAI,GAAK,AAACN,QAAQ,UAAsCO,aAAa;YAC3E;QAEF,KAAK;gBACH,iJAAiJ;YACjJV;YAAAA,CAAAA,UAAAA,OAAMW,KAAK,KAAXX,QAAMW,KAAK,GAAK,AAACR,QAAQ,WAAwCS,cAAc;YAC/E;IACJ;IAEA,OAAOZ,KAAK,CAACC,QAAQ;AACvB"}
@@ -1,2 +1,2 @@
1
- export { getWorkspaceManagerAndRoot, type WorkspaceManagerAndRoot } from "./getWorkspaceManagerAndRoot";
2
- export { getWorkspaceUtilities, type WorkspaceUtilities } from "./getWorkspaceUtilities";
1
+ export { getWorkspaceManagerAndRoot, type WorkspaceManagerAndRoot } from "./getWorkspaceManagerAndRoot.js";
2
+ export { getWorkspaceUtilities } from "./getWorkspaceUtilities.js";
@@ -1,8 +1,20 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWorkspaceUtilities = exports.getWorkspaceManagerAndRoot = void 0;
4
- var getWorkspaceManagerAndRoot_1 = require("./getWorkspaceManagerAndRoot");
5
- Object.defineProperty(exports, "getWorkspaceManagerAndRoot", { enumerable: true, get: function () { return getWorkspaceManagerAndRoot_1.getWorkspaceManagerAndRoot; } });
6
- var getWorkspaceUtilities_1 = require("./getWorkspaceUtilities");
7
- Object.defineProperty(exports, "getWorkspaceUtilities", { enumerable: true, get: function () { return getWorkspaceUtilities_1.getWorkspaceUtilities; } });
8
- //# sourceMappingURL=index.js.map
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get getWorkspaceManagerAndRoot () {
13
+ return _getWorkspaceManagerAndRoot.getWorkspaceManagerAndRoot;
14
+ },
15
+ get getWorkspaceUtilities () {
16
+ return _getWorkspaceUtilities.getWorkspaceUtilities;
17
+ }
18
+ });
19
+ const _getWorkspaceManagerAndRoot = require("./getWorkspaceManagerAndRoot.js");
20
+ const _getWorkspaceUtilities = require("./getWorkspaceUtilities.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workspaces/implementations/index.ts"],"names":[],"mappings":";;;AAAA,2EAAwG;AAA/F,wIAAA,0BAA0B,OAAA;AACnC,iEAAyF;AAAhF,8HAAA,qBAAqB,OAAA"}
1
+ {"version":3,"sources":["../../../src/workspaces/implementations/index.ts"],"sourcesContent":["export { getWorkspaceManagerAndRoot, type WorkspaceManagerAndRoot } from \"./getWorkspaceManagerAndRoot.js\";\nexport { getWorkspaceUtilities } from \"./getWorkspaceUtilities.js\";\n"],"names":["getWorkspaceManagerAndRoot","getWorkspaceUtilities"],"mappings":";;;;;;;;;;;QAASA;eAAAA,sDAA0B;;QAC1BC;eAAAA,4CAAqB;;;4CAD2C;uCACnC"}
@@ -1,20 +1,2 @@
1
- import type { WorkspaceInfos } from "../../types/WorkspaceInfo";
2
- /**
3
- * Get paths for each package ("workspace") in a lerna monorepo.
4
- * @returns Array of monorepo package paths, or an empty array on error
5
- */
6
- export declare function getWorkspacePackagePaths(cwd: string): string[];
7
- /**
8
- * Get an array with names, paths, and package.json contents for each package ("workspace")
9
- * in a lerna monorepo.
10
- * @returns Array of monorepo package infos, or an empty array on error
11
- */
12
- export declare function getLernaWorkspaces(cwd: string): WorkspaceInfos;
13
- /**
14
- * Get an array with names, paths, and package.json contents for each package ("workspace")
15
- * in a lerna monorepo.
16
- * @returns Array of monorepo package infos, or an empty array on error
17
- */
18
- export declare function getLernaWorkspacesAsync(cwd: string): Promise<WorkspaceInfos>;
19
- export { getLernaWorkspaces as getWorkspaces };
20
- export { getLernaWorkspacesAsync as getWorkspacesAsync };
1
+ import type { WorkspaceUtilities } from "./WorkspaceUtilities.js";
2
+ export declare const lernaUtilities: WorkspaceUtilities;