function getDepsPaths()

in packages/just-task/src/package/findDependents.ts [21:51]


function getDepsPaths(pkgPath: string): DepInfo[] {
  const gitRoot = findGitRoot();
  const packageJsonFile = path.join(pkgPath, 'package.json');

  try {
    const packageJson = JSON.parse(fs.readFileSync(packageJsonFile).toString());

    let deps: string[] = [];
    deps = [
      ...deps,
      ...(packageJson.dependencies ? Object.keys(packageJson.dependencies) : []),
      ...(packageJson.devDependencies ? Object.keys(packageJson.devDependencies) : []),
    ];

    return deps
      .map(dep => {
        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
        const depPackageJson = resolveCwd(path.join(dep, 'package.json'))!;

        if (!depPackageJson) {
          return null;
        }

        return { name: dep, path: path.dirname(fs.realpathSync(depPackageJson)) };
      })
      .filter(p => p && p.path.indexOf('node_modules') === -1 && isChildOf(p.path, gitRoot)) as DepInfo[];
  } catch (e) {
    logger.error(`Invalid package.json detected at ${packageJsonFile} `, e);
    return [];
  }
}