Skip to content

Commit 833e6b8

Browse files
committed
change up logging
1 parent d6a6d41 commit 833e6b8

File tree

7 files changed

+34
-30
lines changed

7 files changed

+34
-30
lines changed

packages/app-builder-lib/src/node-module-collector/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,15 @@ export async function detectPackageManager(searchPaths: string[]): Promise<{ pm:
5858
const [pm, version] = packageManager.split("@")
5959
if (Object.values(PM).includes(pm as PM)) {
6060
const resolvedPackageManager = await resolveIfYarn(pm as PM, version, dir)
61-
log.debug({ resolvedPackageManager, packageManager, cwd: dir }, "packageManager field detected in package.json")
61+
log.info({ resolvedPackageManager, packageManager, cwd: dir }, "packageManager field detected in package.json")
6262
return { pm: resolvedPackageManager, corepackConfig: packageManager, resolvedDirectory: dir }
6363
}
6464
}
6565

6666
pm = await detectPackageManagerByFile(dir)
6767
if (pm) {
6868
const resolvedPackageManager = await resolveIfYarn(pm, "", dir)
69-
log.debug({ resolvedPackageManager, cwd: dir }, "packageManager detected by file")
69+
log.info({ resolvedPackageManager, cwd: dir }, "packageManager detected by file")
7070
return { pm: resolvedPackageManager, resolvedDirectory: dir, corepackConfig: undefined }
7171
}
7272
}
@@ -121,7 +121,7 @@ export async function findWorkspaceRoot(pm: PM, cwd: string): Promise<string | u
121121
})
122122
.catch(() => findNearestWithWorkspacesField(cwd))
123123

124-
log.debug({ root: output }, output ? "workspace root detected" : "workspace root not detected")
124+
log.info({ root: output }, output ? "workspace root detected" : "workspace root not detected")
125125
return output
126126
}
127127

packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,7 @@ export abstract class NodeModulesCollector<ProdDepType extends Dependency<ProdDe
8787
return retry(
8888
async () => {
8989
await this.streamCollectorCommandToJsonFile(command, args, this.rootDir, tempOutputFile)
90-
9190
const shellOutput = await fs.readFile(tempOutputFile, { encoding: "utf8" })
92-
log.info({ shellOutput }, "PM list output")
9391
return await this.parseDependenciesTree(shellOutput)
9492
},
9593
{
@@ -162,13 +160,13 @@ export abstract class NodeModulesCollector<ProdDepType extends Dependency<ProdDe
162160
const pkgJsonPath = pkgJsonMatch[1]
163161
const dir = path.dirname(pkgJsonPath)
164162
if (await exists(pkgJsonPath)) {
165-
log.debug({ pkg, dir }, "resolved module via error message (no exports main)")
163+
log.info({ pkg, dir }, "resolved module via error message (no exports main)")
166164
return dir
167165
}
168166
}
169167
}
170168

171-
log.debug({ pkg, base, err: err.message }, "standard require.resolve failed")
169+
log.info({ pkg, base, err: err.message }, "standard require.resolve failed")
172170
}
173171

174172
// 2. Handle file: and file:// protocol or pnpm-style virtual paths

packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,19 @@ export class NpmNodeModulesCollector extends NodeModulesCollector<NpmDependency,
3636

3737
protected async collectAllDependencies(tree: NpmDependency) {
3838
for (const [, value] of Object.entries(tree.dependencies || {})) {
39+
const name: string | undefined = value.name || undefined
40+
if (!name) {
41+
log.warn({ value }, "skipping dependency with no name")
42+
continue
43+
}
44+
3945
// Skip @types packages - they're type-only and not needed at runtime
40-
if (value.name?.startsWith("@types/")) {
41-
log.debug({ name: value.name }, "skipping @types package")
46+
if (name.startsWith("@types/")) {
47+
log.info({ name }, "skipping @types package")
4248
continue
4349
}
4450

45-
const { _dependencies = {}, dependencies = {} } = value
51+
const { _dependencies = {}, dependencies = {}, resolved } = value
4652
const isDuplicateDep = Object.keys(_dependencies).length > 0 && Object.keys(dependencies).length === 0
4753
if (isDuplicateDep) {
4854
continue
@@ -53,11 +59,11 @@ export class NpmNodeModulesCollector extends NodeModulesCollector<NpmDependency,
5359
}
5460

5561
try {
56-
m.path = (await this.resolveModuleDir({ dependency: m, virtualPath: value.resolved }))!
62+
m.path = (await this.resolveModuleDir({ dependency: m, virtualPath: resolved }))!
5763
} catch (err: any) {
5864
// If we can't resolve it and it's a type-related package, skip it
59-
if (value.name.includes("-types") || value.resolved?.includes("@types+")) {
60-
log.debug({ name: value.name, err: err.message }, "skipping unresolvable type package")
65+
if (name.includes("-types") || resolved?.includes("@types+")) {
66+
log.info({ name, err: err.message }, "skipping unresolvable type package")
6167
continue
6268
}
6369
throw err
@@ -71,7 +77,7 @@ export class NpmNodeModulesCollector extends NodeModulesCollector<NpmDependency,
7177
for (const [key, value] of Object.entries(tree.optionalDependencies || {})) {
7278
// Skip @types packages
7379
if (key.startsWith("@types/")) {
74-
log.debug({ name: key }, "skipping @types optional package")
80+
log.info({ name: key }, "skipping @types optional package")
7581
continue
7682
}
7783

@@ -146,7 +152,7 @@ export class NpmNodeModulesCollector extends NodeModulesCollector<NpmDependency,
146152
const visited = new Set<string>()
147153

148154
const buildFromPackage = async (pkgDir: string): Promise<NpmDependency> => {
149-
log.debug({ pkgDir }, "building dependency node from package.json")
155+
log.info({ pkgDir }, "building dependency node from package.json")
150156
const pkgPath = path.join(pkgDir, "package.json")
151157
const pkg: PackageJson = await readJson(pkgPath)
152158

packages/app-builder-lib/src/node-module-collector/packageManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export async function detectYarnBerry(cwd: string, version: string): Promise<PM.
9090
return PM.YARN_BERRY
9191
}
9292
} catch (_error) {
93-
log.debug({ error: _error }, "cannot determine yarn version, assuming yarn v1")
93+
log.info({ error: _error }, "cannot determine yarn version, assuming yarn v1")
9494
// If `yarn` is not found or another error occurs, fall back to the regular Yarn since we're already determined in a Yarn project
9595
}
9696
return undefined

packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export class PnpmNodeModulesCollector extends NodeModulesCollector<PnpmDependenc
4949

5050
// Then check if optional dependency path exists
5151
if (packageJson.optionalDependencies?.[packageName] && !fs.existsSync(dependency.path)) {
52-
log.debug({ packageName, version: dependency.version, path: dependency.path }, `optional dependency path doesn't exist`)
52+
log.info({ packageName, version: dependency.version, path: dependency.path }, `optional dependency path doesn't exist`)
5353
return false
5454
}
5555

packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export class YarnBerryNodeModulesCollector extends NpmNodeModulesCollector {
2020
protected async getDependenciesTree(): Promise<NpmDependency> {
2121
const isPnp = await this.isPnP.value
2222
if (isPnp) {
23-
// log.debug(null, "using Yarn PnP for dependency tree extraction")
23+
// log.info(null, "using Yarn PnP for dependency tree extraction")
2424
// // Yarn PnP
2525
// // Reference: https://yarnpkg.com/features/pnp
2626
// // Note: .pnp.cjs is not always in the project root (can be in workspace root instead)
@@ -37,7 +37,7 @@ export class YarnBerryNodeModulesCollector extends NpmNodeModulesCollector {
3737
try {
3838
return await super.getDependenciesTree(PM.NPM)
3939
} catch (error: any) {
40-
log.debug({ error: error.message }, "unable to process dependency tree, falling back to using manual node_modules traversal for yarn berry")
40+
log.info({ error: error.message }, "unable to process dependency tree, falling back to using manual node_modules traversal for yarn berry")
4141
}
4242
// Yarn Berry node_modules linker fallback. (Slower due to system ops, so we only use it as a fallback)
4343
return await this.buildNodeModulesTreeManually(this.rootDir)
@@ -74,7 +74,7 @@ export class YarnBerryNodeModulesCollector extends NpmNodeModulesCollector {
7474
if (found) {
7575
return path.join(unpluggedDir, found, "node_modules", pkg)
7676
}
77-
log.debug({ pkg, base, error: error.message }, "failed to resolve module dir, falling back to default resolution")
77+
log.info({ pkg, base, error: error.message }, "failed to resolve module dir, falling back to default resolution")
7878
}
7979
// Yarn Berry PnP does not use node_modules, so we resolve directly to the package directory.
8080
const searchPath = path.join(this.rootDir, "node_modules", pkg)

packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
4545
if (tree.dependencies && appName) {
4646
for (const [key, dep] of Object.entries(tree.dependencies)) {
4747
if (dep.name === appName) {
48-
log.debug({ name: dep.name, path: dep.path }, "skipping root app package from dependency tree")
48+
log.info({ name: dep.name, path: dep.path }, "skipping root app package from dependency tree")
4949
delete tree.dependencies[key]
5050
}
5151
}
@@ -135,7 +135,7 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
135135
for (const node of tree) {
136136
const match = node.name.match(/^(.*)@([^@]+)$/)
137137
if (!match) {
138-
log.debug({ name: node.name }, "invalid node name format")
138+
log.info({ name: node.name }, "invalid node name format")
139139
continue
140140
}
141141

@@ -144,7 +144,7 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
144144

145145
const isShadow = node.shadow && node.color === "dim"
146146
if (isShadow) {
147-
log.debug({ pkgName, version }, "skipping shadow node")
147+
log.info({ pkgName, version }, "skipping shadow node")
148148
continue
149149
}
150150

@@ -169,7 +169,7 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
169169
optionalDependencies: {},
170170
}
171171

172-
log.debug({ name: pkgName, version }, "+ normalize")
172+
log.info({ name: pkgName, version }, "+ normalize")
173173

174174
if (node.children && node.children.length > 0) {
175175
for (const child of node.children) {
@@ -183,7 +183,7 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
183183
continue
184184
}
185185

186-
log.debug({ parent: pkgName, childName, childVersion }, " + normalize child")
186+
log.info({ parent: pkgName, childName, childVersion }, " + normalize child")
187187
const childDeps = this.normalizeTree([child], seen)
188188

189189
for (const [childDepName, childDep] of Object.entries(childDeps)) {
@@ -235,15 +235,15 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
235235
})
236236
} catch (e) {
237237
if (treatAsOptional) {
238-
log.debug({ pkg: this.cacheKey(value), name: value.name }, "failed to resolve optional dependency, skipping")
238+
log.info({ pkg: this.cacheKey(value), name: value.name }, "failed to resolve optional dependency, skipping")
239239
failedPackages.add(value.name)
240240
continue
241241
}
242242

243243
// Special case: if this is not a direct root dependency and resolution failed,
244244
// it might be a transitive dep of an optional package
245245
if (!isDirectRootDep) {
246-
log.debug({ pkg: this.cacheKey(value), name: value.name }, "failed to resolve transitive dependency, treating as optional")
246+
log.info({ pkg: this.cacheKey(value), name: value.name }, "failed to resolve transitive dependency, treating as optional")
247247
failedPackages.add(value.name)
248248
continue
249249
}
@@ -254,7 +254,7 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
254254

255255
// If resolution returned null (optional dependency not found), skip it
256256
if (!p) {
257-
log.debug({ pkg: this.cacheKey(value), name: value.name }, "optional dependency not found, skipping")
257+
log.info({ pkg: this.cacheKey(value), name: value.name }, "optional dependency not found, skipping")
258258
failedPackages.add(value.name)
259259
continue
260260
}
@@ -264,7 +264,7 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
264264
if (versionMatch) {
265265
resolvedVersion = versionMatch[1]
266266
if (resolvedVersion !== value.version) {
267-
log.debug({ name: value.name, declared: value.version, resolved: resolvedVersion }, "resolved actual version from path")
267+
log.info({ name: value.name, declared: value.version, resolved: resolvedVersion }, "resolved actual version from path")
268268
}
269269
}
270270

@@ -296,7 +296,7 @@ export class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependenc
296296
const cleanDependencies = (deps: Record<string, YarnDependency> = {}) => {
297297
for (const [key, dep] of Object.entries(deps)) {
298298
if (failedPackages.has(dep.name)) {
299-
log.debug({ name: dep.name }, "removing failed package from tree")
299+
log.info({ name: dep.name }, "removing failed package from tree")
300300
delete deps[key]
301301
} else {
302302
// Recursively clean children

0 commit comments

Comments
 (0)