Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
!pkg.optionalDependencies?.length &&
!pkg.unsavedDependencies?.length
) return ''
let label = ''
if (pkg.name) {
label += pkg.name
if (pkg.version) {
label += `@${pkg.version}`
}
label += ' '
}
label += pkg.path
let output = (opts.depth > -1 ? LEGEND : '') + label + '\n'
const useColumns = opts.depth === 0 && opts.long === false && !opts.search
for (let dependenciesField of [...DEPENDENCIES_FIELDS.sort(), 'unsavedDependencies']) {
if (pkg[dependenciesField]?.length) {
const depsLabel = chalk.cyanBright(
dependenciesField !== 'unsavedDependencies'
? `${dependenciesField}:`
: 'not saved (you should add these dependencies to package.json if you need them):'
)
output += `\n${depsLabel}\n`
const gPkgColor = dependenciesField === 'unsavedDependencies' ? () => NOT_SAVED_DEP_CLR : getPkgColor
if (useColumns && pkg[dependenciesField].length > 10) {
output += cliColumns(pkg[dependenciesField].map(printLabel.bind(printLabel, gPkgColor))) + '\n'
continue
}
const data = await toArchyTree(gPkgColor, pkg[dependenciesField]!, {
long: opts.long,
modules: path.join(pkg.path, 'node_modules'),
})
const jsonArr = await Promise.all(pkgs.map(async (pkg) => {
const jsonObj = {
name: pkg.name,
version: pkg.version,
}
for (const dependenciesField of [...DEPENDENCIES_FIELDS.sort(), 'unsavedDependencies']) {
if (pkg[dependenciesField]?.length) {
jsonObj[dependenciesField] = await toJsonResult(pkg[dependenciesField], { long: opts.long })
}
}
return jsonObj
}))