MCPcopy Create free account
hub / github.com/adobe/react-spectrum / copyDependencyTree

Function copyDependencyTree

packages/dev/s2-docs/scripts/generateMcpb.mjs:223–247  ·  view source on GitHub ↗
(
  packageName,
  outputNodeModulesDir,
  bundledPackages,
  fromDir = repoRoot
)

Source from the content-addressed store, hash-verified

221}
222
223function copyDependencyTree(
224 packageName,
225 outputNodeModulesDir,
226 bundledPackages,
227 fromDir = repoRoot
228) {
229 if (bundledPackages.has(packageName)) {
230 return;
231 }
232
233 const packageDir = resolvePackageDir(packageName, fromDir);
234 const packageJsonPath = path.join(packageDir, 'package.json');
235 const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
236 bundledPackages.add(packageName);
237
238 copyDirectory(packageDir, path.join(outputNodeModulesDir, packageName));
239
240 for (const dependency of Object.keys(packageJson.dependencies || {})) {
241 copyDependencyTree(dependency, outputNodeModulesDir, bundledPackages, packageDir);
242 }
243
244 for (const dependency of Object.keys(packageJson.optionalDependencies || {})) {
245 copyDependencyTree(dependency, outputNodeModulesDir, bundledPackages, packageDir);
246 }
247}
248
249function resolvePackageDir(packageName, fromDir) {
250 let currentDir = fromDir;

Callers 1

generateBundleFunction · 0.85

Calls 5

resolvePackageDirFunction · 0.85
copyDirectoryFunction · 0.85
hasMethod · 0.65
addMethod · 0.65
parseMethod · 0.45

Tested by

no test coverage detected